postmarketOS

Posted by API Caller on February 22, 2020

手机厂商要知耻


找东西翻出来不少老旧手机, 通电都还能跑, 想起以前看到过的 Ubuntu touch 于是搜了搜 Android phone full Linux, 没想到找到了 postmarketOS.

postmarketOS(或称pmOS)是一个针对智能手机开发的自由开源操作系统,基于Alpine Linux发行版。

postmarketOS始于2017年5月6日,源代码可于GitLab上获得。postmarketOS可以运行各款基于X和Wayland的用户界面,例如Plasma Mobile、MATE、GNOME 3和XFCE。该项目旨在为智能手机提供十年的产品周期

赶紧刷一个

Installation

Installing pmbootstrap

1
2
3
export PATH=~/.local/bin:$PATH
pip3 install --user pmbootstrap
pmbootstrap --version

Nexus 5

Google Nexus 5 (lg-hammerhead)

1
2
3
4
5
6
7
pmbootstrap init # phosh 或者 none

# 个人选择生成个可以在 recovery 用的 zip 文件
# 过程中会需要设置密码
pmbootstrap --verbose -t 999999 --jobs 8 --details-to-stdout install --android-recovery-zip # --recovery-install-partition data

pmbootstrap export # 会生成一个在 /tmp/postmarketOS-export/pmos-*.zip 的软链接

生成完 pmos-*.zip 的具体位置用 readlink /tmp/postmarketOS-export/pmos-*.zip 查看

1
2
3
4
5
fastboot format system

# 进 recovery 启动 adb sideload

adb sideload pmos-*.zip

开机后, terminal 里 ip a 确认 USB 对应 IP 为 172.16.42.1, 配置电脑 IP 为 172.16.42.2, 连接 ssh:

ssh [email protected]

然后查阅发现本机型已经支持 WiFi, 根据官方文档进行配置.

1
2
sudo nmcli device wifi list ifname wlan0
sudo nmcli device wifi connect "$SSID" password "$PASSWORD" ifname "wlan0"
1
2
3
4
5
6
7
8
    ___       [email protected]               
   (.. |      os     postmarketOS 1.14.0
   (<> |      host   LGE MSM 8974 HAMMERHEAD
  / __  \     kernel 5.4.0-rc6-next-20191108
 ( /  \ /|    uptime 10m
_/\ __)/_)    pkgs   192
\/-____\/     memory 230M / 1888M

Nexus 4

Google Nexus 4 (lg-mako) Installation

其实是因为官方还没支持 WiFi

Usage

换源

1
2
3
sudo sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
sudo apk update
sudo apk upgrade

换 bash

1
2
3
sudo apk add bash
sudo apk add bash-doc
sudo apk add bash-completion

修改用户默认 shell vi /etc/passwd

将当前用户对应的 /bin/ash 修改为 /bin/bash

Troubleshooting

  • 电量不对劲, 看对应文件也都是 0%
  • 可用空间太小, 内置存储没挂载上, 可能需要重新分区? 没继续看文档了…

Porting

还有些设备不在官方支持列表里, 个人也可以移植一个设备然后贡献代码.

Ref