<commit_before>---
type: post
category: tech
tag:
  - hackintosh
---

# OK，说说黑苹果

首先，一个开发者是不是要有一台 Mac 呢？个人认为如果不是 iOS 或者 OSX 开发，一台 Mac 并不是必须的。然而我还是想要一台黑苹果，其一，过去十年对比 Windows 和 Linux，MacOS 被更多 UI 开发者所青睐；其二，Windows 和 Mac 的开发方式相对来说比较隔离，多一台 Mac 会多一个思考问题的角度。

## 准备

首先，如果不是新组的机器，黑苹果最好是台式机双系统，因为诸如声卡、网卡指纹锁、摄像头等硬件会因为兼容问题而不得不被放弃或者再去买个外设挂上。

最重要的，CPU，一定要选择 Intel 酷睿，会轻松很多。我知道有很多 AMD 或者奔腾都黑苹果成功了，但考虑到稳定性，就算用酷睿也不能保证 100%成功，何况换到非酷睿的 CPU 上。

接下来，镜像，推荐[黑锅小兵](https://blog.daliansky.net/)，下载好镜像后使用[Ether](https://www.balena.io/etcher/)烧录 U 盘，当然也可以使用别的烧录工具，试验了下这个成功率更高一些。

## 安装

Clover 是黑苹果 UEFI 引导工具，想想以前用的比较多的引导是变色龙，不过为了踩坑少一点，就用 Clover 吧。另外镜像最好多下个旧版本，烧录好的安装盘卡在一堆加号的情况很常见，往往这些情况就是 Clover 版本太低，理论上升级 Clover 能解决，但也可能搞不定，所以手上拿着黑苹果就不要想着尝鲜了。

先分好一个分区然后重启进入 U 盘引导 Clover 进入安装，有的时候点击安装提示不能安装，可以到终端里面修改到更早一点的时间再安装。

## 配置 ESP 分区

安装之后，进入 MacOS 依然需要借助 U 盘上的 Clover 来引导，此时需要把 U 盘上 EFI 文件夹下的 CLOVER 文件夹全部复制到机器 ESP 分区的 EFI 文件夹下。这一操作可以通过再 Mac 上面安装 Clover Configurator 来配置，同时，这个工具也可以用来修改 Clover 配置。

前面说，Clover 的驱动需要保持更新，可以通过安装 Hackintool 实现。

重启进入 Windows，安装 BOOTICE 来修改 UEFI 启动项，其中需要访问 ESP/EFI/CLOVER 下的 Clover.efi 文件（可能名字会不同，但一定是 efi 文件），可以使用 DISKPART 并给 ESP 分区一个盘符。

新建好 CLOVER 项，把它放到第一项，重启就能进入机器的 CLOVER 了。

## 安装软件

### 和内网的 PC 交互

前面介绍过 barrier 是可以在 mac 上面安装并实现一对鼠标键盘操作多台设备。

目前 Windows 还没有右键共享文件到 Mac 的方案，考虑到我的黑苹果蓝牙和 wifi 都废了，也不能实现投屏，不过还好 mac 支持 smb 分享，也算是实现了几台设备在内网连接了。

大概用了一天，最大的不适应就是 Ctrl-C 和 Cmd-C 不能互相映射了。

### 科学上网

目前 v2ray 支持比较好的应用是 v2rayU，我测试最新版是有问题的，可以选择早一点的版本。

nvm 的镜像可以使用阿里的，不过和 Windows 不同，只需要增加环境变量即可`export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/`。

homebrew 可以使用[清华的源](https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/)，不过依然很卡。

NPM 使用阿里的源`npm config set registry=https://registry.n pm.taobao.org/`

yarn 使用阿里的源`yarn config set registry https://registry. npm.taobao.org/`

Android Studio 使用东软的代理，`http://mirrors.neusoft.edu.cn:80`。

Rustup 使用清华的源`export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup`。

Cargo 使用中科大的源

```ini
# ~/.cargo/config
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
```

大概先做这么多
<commit_msg>✨ Feat: flutter<commit_after>---
type: post
category: tech
tag:
  - hackintosh
---

# OK，说说黑苹果

首先，一个开发者是不是要有一台 Mac 呢？个人认为如果不是 iOS 或者 OSX 开发，一台 Mac 并不是必须的。然而我还是想要一台黑苹果，其一，过去十年对比 Windows 和 Linux，MacOS 被更多 UI 开发者所青睐；其二，Windows 和 Mac 的开发方式相对来说比较隔离，多一台 Mac 会多一个思考问题的角度。

## 准备

首先，如果不是新组的机器，黑苹果最好是台式机双系统，因为诸如声卡、网卡指纹锁、摄像头等硬件会因为兼容问题而不得不被放弃或者再去买个外设挂上。

最重要的，CPU，一定要选择 Intel 酷睿，会轻松很多。我知道有很多 AMD 或者奔腾都黑苹果成功了，但考虑到稳定性，就算用酷睿也不能保证 100%成功，何况换到非酷睿的 CPU 上。

接下来，镜像，推荐[黑锅小兵](https://blog.daliansky.net/)，下载好镜像后使用[Ether](https://www.balena.io/etcher/)烧录 U 盘，当然也可以使用别的烧录工具，试验了下这个成功率更高一些。

## 安装

Clover 是黑苹果 UEFI 引导工具，想想以前用的比较多的引导是变色龙，不过为了踩坑少一点，就用 Clover 吧。另外镜像最好多下个旧版本，烧录好的安装盘卡在一堆加号的情况很常见，往往这些情况就是 Clover 版本太低，理论上升级 Clover 能解决，但也可能搞不定，所以手上拿着黑苹果就不要想着尝鲜了。

先分好一个分区然后重启进入 U 盘引导 Clover 进入安装，有的时候点击安装提示不能安装，可以到终端里面修改到更早一点的时间再安装。

## 配置 ESP 分区

安装之后，进入 MacOS 依然需要借助 U 盘上的 Clover 来引导，此时需要把 U 盘上 EFI 文件夹下的 CLOVER 文件夹全部复制到机器 ESP 分区的 EFI 文件夹下。这一操作可以通过再 Mac 上面安装 Clover Configurator 来配置，同时，这个工具也可以用来修改 Clover 配置。

前面说，Clover 的驱动需要保持更新，可以通过安装 Hackintool 实现。

重启进入 Windows，安装 BOOTICE 来修改 UEFI 启动项，其中需要访问 ESP/EFI/CLOVER 下的 Clover.efi 文件（可能名字会不同，但一定是 efi 文件），可以使用 DISKPART 并给 ESP 分区一个盘符。

新建好 CLOVER 项，把它放到第一项，重启就能进入机器的 CLOVER 了。

## 安装软件

### 和内网的 PC 交互

前面介绍过 barrier 是可以在 mac 上面安装并实现一对鼠标键盘操作多台设备。

目前 Windows 还没有右键共享文件到 Mac 的方案，考虑到我的黑苹果蓝牙和 wifi 都废了，也不能实现投屏，不过还好 mac 支持 smb 分享，也算是实现了几台设备在内网连接了。

大概用了一天，最大的不适应就是 Ctrl-C 和 Cmd-C 不能互相映射了。

### 科学上网

目前 v2ray 支持比较好的应用是 v2rayU，我测试最新版是有问题的，可以选择早一点的版本。

nvm 的镜像可以使用阿里的，不过和 Windows 不同，只需要增加环境变量即可`export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/`。

homebrew 可以使用[清华的源](https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/)，不过依然很卡。

NPM 使用阿里的源`npm config set registry=https://registry.n pm.taobao.org/`

yarn 使用阿里的源`yarn config set registry https://registry. npm.taobao.org/`

Android Studio 使用东软的代理，`http://mirrors.neusoft.edu.cn:80`。

Rustup 使用清华的源`export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup`。

Cargo 使用中科大的源

```ini
# ~/.cargo/config
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
```

flutter 使用清华源`export FLUTTER_STORAGE_BASE_URL="https://mirrors.tuna.tsinghua.edu.cn/flutter";export PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub"`

大概先做这么多

{'fraction_non_alphanumeric': 0.11621202040363716, 'fraction_numerical': 0.003104901308494123, 'mean_word_length': 5.992248062015504, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 18, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2266015', 'n_tokens_mistral': 3185, 'n_tokens_neox': 3472, 'n_words': 362}