OnePlus 6 体验 postmarketOS 折腾记录
1. 准备工作
1.1. 设备
① 一加 6(OnePlus 6)、数据线
② 电脑(主流操作系统皆可)
③ 网络(可能需要魔法)
1.2. 环境
① 电脑上拥有安卓调试工具(fastboot、adb),没有就从这里下载,可选加入系统 PATH 环境变量。
② 一些其他刷机必要的保障工作,在此不赘述。
2. 解锁 bootloader
一加 6 解 BL 锁非常容易,只需要:
① 在 设置
- 关于
中,多次点击版本号以启用 开发者模式
;
② 在 设置
- 系统
中进入 开发者模式
,启用 OEM 解锁
以及 高级重启
;
③ 长按 电源键
,选择重启到 引导加载器
;
④ 将手机连接到电脑,输入:
fastboot oem unlock
根据手机上的提示,解锁设备(UNLOCK THE BOOTLOADER
);
注意:音量加减键控制上下,电源键确定
⑤ 经过较长的等待时间,手机会清除数据并自动开机。
至此,bootloader 已经解锁。
3. 刷入 postmarketOS
3.1. 下载刷机包
① 进入 postmarketOS 镜像下载页,找到 OnePlus 6;
② 两个版本可选:指明版本号的 stable 稳定版,edge 预览版,这里选择稳定版;
③ 四个 UI 版本可选,选择其中之一即可;这里选择 phosh
版本;
④ 下载标有 latest
标志的目录中的两个镜像(可能需要魔法);
3.2. 刷入系统
① 将手机重启至 fastboot
模式,连接到电脑;
② 在电脑上打开终端,依次输入:
fastboot erase dtbo
fastboot flash boot 下载的 boot 镜像的路径
fastboot flash userdata 另一个镜像的路径
③ 等待写入完成,重启设备:
fastboot reboot
注意:进入 fastboot
模式,可按住电源键,手机震动的同时按下音量加键。
4. postmarketOS 使用 docker
注意:默认密码是 147147
4.1. 启用 SSH
在手机上的终端中输入:
sudo service sshd start
将 SSH 服务设置为开机启动:
sudo rc-update add sshd
将手机连上无线网,获取设备 IP:
ifconfig
查看当前用户:
whoami
在 Windows 终端(任意 SSH 客户端)中连接上手机:
ssh user@手机IP
其他 SSH 相关问题查看官方百科。
4.2. 更换国内源
安装文本编辑器 nano(打开即编辑,Ctrl + O
保存,Ctrl + X
退出):
sudo apk add nano
修改 /etc/apk/repositories
,将原内容注释或删除,添加镜像源(类似下面的内容):
# http://mirror.postmarketos.org/postmarketos/v23.12
# http://dl-cdn.alpinelinux.org/alpine/v3.19/main
# http://dl-cdn.alpinelinux.org/alpine/v3.19/community
http://mirrors.tuna.tsinghua.edu.cn/postmarketOS/v23.12
http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.19/main
http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.19/community
更新软件包列表:
sudo apk update
4.3. 安装 Docker
安装 docker 和 docker-compose:
sudo apk add docker docker-cli-compose
可选关闭防火墙:
sudo service nftables stop
sudo rc-update del nftables
修改 docker 服务配置文件,禁用 iptables:
sudo nano /etc/init.d/docker
在 command_args
中添加 --iptables=false
参数,类似下面内容:
command_args="--iptables=false ${DOCKER_OPTS}"
重启 docker 服务:
sudo service docker restart
输入 sudo -s
进入 root 账户,查看 docker 信息:
docker info
4.4. Docker 配置国内源
创建 /etc/docker
目录:
sudo mkdir -p /etc/docker
创建 /etc/docker/daemon.json
:
sudo nano /etc/docker/daemon.json
添加如下内容:
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
重启 docker 服务:
sudo service docker restart
4.5. 运行 hello-world
在 root 账户下,运行:
docker run --rm hello-world
成功在手机上原生运行 docker!