はじめてのpostｍarketOSｲﾝｽﾄｰﾙ ｽﾏｰﾄﾌｫﾝ

1

Beginner for install postmarketOS in Smartphone
１、 自己紹介 Self introduction
２、Recently my activities
３、What’s postmarketOS?
４、Surpported devices
5、Install postmarketOS on Nexus5
6、Hacking Nexus5 about US$ 40.
7、pmbootstrap.py
8、Known issues

postmarketOS
and Nexus5

詳しい話はSlideshareで公開中@kapper1224
This Presentation:
Slideshare & PDF files
publication of my HP
http://kapper1224.sakura.ne.jp

東海道らぐ横浜 2019年5月18日 13:00〜
Place: 神奈川県横浜市西区高島2-6-32
株式会社ジェイエスピー 会議室Red

Gadget Hacking
User Group
Speaker：Kapper2

自己紹介Self Introduction●My name: Kapper●

Twitter account：＠kapper1224●

HP：http://kapper1224.sakura.ne.jp●

Slideshare: http://www.slideshare.net/kapper1224●

ニコナレ: http://niconare.nicovideo.jp/users/59379263●

Facebook：https://www.facebook.com/kapper1224/●

My Hobby：Linux、*BSD、and Mobile Devices●

My favorite words：The records are more important than the experiment.

●●

Test Model：Netwalker(PC-Z1,T1)、Nokia N900、DynabookAZ、RaspberryPi
Nexus7(2012、2013)、Nexus5、OpenPandora、Chromebook、Fx0（FirefoxOS）、台湾Android電子辞書 無敵CD-920、CD-928
GPD-WIN、GPD-Pocket、Windows Tablet、SailfishOS、UBPorts
Recent my Activity：
Hacking Linux on Windows10 Tablet (Intel Atom base).
Hacking NetBSD and OpenBSD on UEFI and Windows Tablet.
I have been exhibiting in NT Nagoya, NT Kanazawa, Oogaki Mini MakerFaire.
I have over 120 Windows Tablet and 40 ARM Android, and test it now.

Recently my activities

Sailfish X on Xperia X

UBPorts on Nexus5
Nexus7 2013

postmarketOS onReports Linux on
Nexus5, Nexus7 2012 Windows Tablet in Amazon

NetBSD、OpenBSD、FreeBSD
Some Linux on Windows Tablet

Activities on NT, MakerFaire,Taiwan

3どんなOSが載せられるの？

4Distributions

iPhoneAndroidWindows
10 ARM
Ubuntu×××△△××

ARM

×△

◎

◎

××

○

Desktop

Debian×△◎◎××◎

Desktop

openSUSE×△

◎

◎

×××

DesktopCentOS×△△○×××

Desktop

FreeBSD××△◎×××

Desktop

NetBSD××△◎××

Desktop

Android-x86

×ー◎

ー××

◎
×

ChromiumOS

××

◎

◎

×××

LineageOS

×◎◎

◎

××

FirefoxOS
SailfishOS

××△
◎×？

△○××××◎×○

x86、ARM
ARM、x８６

Windows Rasp
Windo Black
TabletberryPi wsRT berry

Nokia
N900

Comments

ｘ86

ARM
ARM

postmarket
×◎○◎××◎
ARM、x86OSUBPorts×◎×××××
ARM
Official supported◎、Official reported○、User reported△、No reported ×中古、ｼﾞｬﾝｸ ｶﾞｼﾞｪｯﾄ価格推定2019
低ｽﾍﾟｯｸCPU
上級者・廃人ｿﾞｰﾝ

要改造(ﾊｯｷﾝｸﾞ)

ﾛｰｴﾝﾄﾞ中古 現行機種

~1000円 ~2000円 ~4000円 ~6000円 ~10千円 ~15千円 ~20千円
1 boardWindows
TabletAndroid
SmartPhone
TabletARM PDA
SmartPhone
Kindle Fire

E-bookGame
ConsoleOpenWRT

530千円～

RaspiZero
JetsonTK1
Atom board
Raspi2,3 Thinkerboard
NanoPi
JetsonTX1
W500P
Miix2 8
T100TA,HA Photon2 Surface2Pro
ドスパラ KVI-40B
Venue8Pro 10ｲﾝﾁWinﾀﾌﾞ
ジャンクSurface3
Win-70b
タブレット
8ｲﾝﾁWinﾀﾌﾞ 2in1 WinﾀﾌﾞGPD-WIN GPD-Pocket
スティックPC
KPD-701
Nexus7 2012 Nexus5
Nexus7 2013
7ｲﾝﾁ中華ME176 ZenPhone2
TF101
Nexus10 Nexus9
TF201,TF300t
Netwalker
Linux Zaurus
W-Zero3
Windows Phone WindowsRT Surface2RT
Nokia N900
Kindle、Fire Kindle,FireKindle2012
2013~52016~8d-01E

Kobo Aura
Kobo Kindle
PapperWhite Kindle PapperWhite
Touch,Glo
2015〜2017
2012〜2014
FCmini
PS3
DreamCast
PS2,XBOX,GC PSClassic XBOX360
TW06W

NintendoSwitch

PostmarketOSとは？
What's PostmarketOS?
●6

スマホ、タブレットをリサイクルするためのOSプロジェクト
Smartphone and Tablet OS reused Linux Distributons.

●

100以上のデバイスでAlpineLinuxが動作。Nexus7 2012などAlpine Linux operate Android over 100 devices.

●

最近Xorgが動かないバグあり。5/14直ったはず。検証中。
PlasmaMobileとWestonのみ動作。

Supported devices
Google Nexus, Samsung old Galaxy,Xiaomi,HTC,Asus, Motorola Moto, Nokia N9,N900,old Xperia,
RaspberryPi,Qemu,Generic amd86...
●https://wiki.postmarketos.org/wiki/Devices●

7Based systems●

8

Alpine LinuxをベースにしておりAndroidKernelなど。
PostmarketOS is based Alpine Linux.
It uses Android kernel or Mainline kernel.

1. Overwrite flash img,
2. SD cards,
3. ZIP files on TWRP, CWM
4. The other Android recovery system.
●
インストールにはpmbootstrap.pyをLinuxで動かすだけ●

Install scrpit pmbootstrap.py in Linux distibutions.
●User interfaces (WM)
1.none2.hildon
3.luna (Wayland)
4.plasma-mobile (Wayland)
5.Weston (Wayland)
6.XFCE4 (xorg)

KDE Plasma Mobileとは？
What's Plasma Mobile?
●

PostmarketOSをベースとしたKDEモバイルWM
Plasma Mobile is based ARM-PostmarketOS and x86 Ubuntu.

●

本家はNexus5向けに移植、開発されている
Plasma Mobile is porting Nexus5 and x86-64.

9Install postmarketOS in Nexus5●

参考サイトは公式HPのWiki
Please see the official HP and the Wiki.

●

https://wiki.postmarketos.org/wiki/Google_Nexus_5_(lg-hammerhead)10

Hack inexpensive Nexus5 US$40●

11Nexus5は各種OSの改造リファレンスマシン
Nexus5 is operated some Linux distributions.

●

SailfishOSやUBPorts、PostmarketOSなど動きます

SailfishOS, UBPorts, PostmarketOS and the others can play Nexus5.

Geoでポイント引いて4,102円

Install postmarketOS on Nexus5
１．Nexus5のAndroidを最新版までアップデート
Upgrade the newest Android version in Nexus5.

2．MicroUSBケーブルで母艦につなぎ接続確認
Connect Xperia X to PC at Micro USB cable.

3．Androidでビルド番号をクリックして開発者モードにする。改造可否チェック。
その後、OEMロック解除とUSBデバッグをON
Change DeveloperMode in Android,check Hackable device, disable OEMlock and enable USBDebug .

4．PCにAndroid-tools（fastbootコマンド）をインストール
Install Android-tools(fastboot) in the mother PC.

5．ブートローダーをUnlockする Unlock bootloader
6．Githubからpmbootstrapをダウンロード
Download pmbootstrap from the Github.

7．Nexus5をFastbootモードで再起動 Reboot Nexus5
8．母艦からpmbootstrap.pyコマンドでイメージを焼く
Write postmarketOS images from PC and fastboot command(pmbootstrap.py)

9．再起動

Reboot Nexus5 and postmarketOS

12Adb shell on Linux and Nexus5
１．Ubuntu Linuxなどの上でXperiaXを認識出来る様にします。fastbootを入れる。
Nexus5 connect Linux, like Ubuntu. Please install android-tools(fastboot).

２．adb shell コマンドで繋がらない場合は、ATTRS{idVendor}を/etc/udev/rules.d/51-android.rulesに書いて保存

If you don’t connect 「adb shell」 command it, Please write ATTRS{idVendor}〜 on「/etc/udev/rules.d/51-android.rules」

sudo gedit /etc/udev/rules.d/51-android.rules
で下記文章をコピペして保存します。

Copy and paste it.

LG ID Vendor

SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666",
GROUP="plugdev"/etc/udev/rules.d/51-android.rules
３．各社のIDベンダー名はgoogleのHPに乗っています。 Please see ID Vendoer in Google HP
https://developer.android.com/studio/run/device?hl=ja
４．sudo service udev restartで認識。adb shellで動作確認「sudo service udev restart」 and 「adb shell」

13

Unlock Bootloader on Nexus5●

14

１．Nexus5の電源ボタンと音声下ボタンを長押しして起動。ロックはかかっていない
When boot Nexus5, holding down Botton 「Power」 and 「sound down」 together. Nexus5
is no locked bootloader.

２．母艦にUSBケーブルで繋いで「sudo fastboot oem unlock」
Connect USB cable to the mother PC,「sudo fastboot oem unlock」●

３． unlock allowed Yesを確認する。Noだと改造できない注意
Push 「unlock allowed Yes」 and reboot it.

pmbootstrap.py on Nexus5１．Githubからpmbootstrap.pyをダウンロード
git clone https://gitlab.com/postmarketOS/pmbootstrap
cd pmbootstrap/
Download pmbootstrap.py from Github.

２．ターミナルからpmbootstrap.py init で機種の指定とユーザー名登録./pmbootstrap.py init
While Install 「./pmbootstrap.py init」 command and select devices, usernames, WM.

3. pmbootstrap.py install –no-fdeでイメージダウンロード、インストール./pmbootstrap.py install --no-fde
Download images and install 「./pmbootstrap.py install --no-fde」

４．イメージファイルをNexus5のuserdataへコピー./pmbootstrap.py flasher flash_rootfs --partition userdata
Copy imagefile flash_rootfs partations.

５．Systemパーティションをフォーマット
sudo fastboot format system

Format system partations

6.Kernelを書き込む Write Kernel./pmbootstrap.py flasher flash_kernel
７．Nexus5をシャットダウンして再起動。
./pmbootstrap.py shutdown

Reboot15

./pmbootstrap.py init

16

１．Githubからpmbootstrap.py init を実行した後に機種を選択
A●●

Available (129): amazon-thor, asus-duma, asus-flo, asus-grouper, asus-me176c, asust00f, asus-tf101, asus-z00t, asus-z00vd, bq-chaozu, fairphone-fp1, fairphone-fp2, googlecrosshatch, google-glass, gp-peak, htc-a5ul, htc-ace, htc-bravo, htc-evita, htc-flounder,
htc-m8, htc-ville, htc-vision, htc-vivo, huawei-angler, huawei-cameron, huawei-y530,
infocus-flatfish, jolla-sbj, leeco-s2, lenovo-karate, lg-bullhead, lg-d285, lg-d722, lg-d855,
lg-dory, lg-h815, lg-hammerhead, lg-lenok, lg-mako, lg-w5, meizu-turbo, motorolaathene, motorola-cedric, motorola-falcon, motorola-ghost, motorola-harpia, motorolamaserati, motorola-montana, motorola-osprey, motorola-peregrine, motorola-potter,motorola-shamu, motorola-surnia, motorola-titan, nextbit-robin, nokia-frt, nokia-n9,
nokia-n900, nokia-rm885, oneplus-bacon, oneplus-oneplus2, oneplus-onyx, ouya-ouya,pine-a64lts, planet-geminipda, purism-librem5dev, qemu-aarch64, qemu-amd64, qemuvexpress, raspberry-pi, raspberry-pi0, raspberry-pi3, samsung-apexq, samsungespresso10, samsung-gts210vewifi, samsung-hero2lte, samsung-i747m, samsung-i8190,
samsung-i8200, samsung-i9003, samsung-i9070, samsung-i9100, samsung-i9195,samsung-i927, samsung-i9305, samsung-jflte, samsung-klte, samsung-kminilte, samsungkylepro, samsung-kylessopen, samsung-kylevess, samsung-lt01wifi, samsung-lt023g,
samsung-maguro, samsung-manta, samsung-n5110, samsung-n7100, samsung-p4wifi,
samsung-s6500d, samsung-serranodsdd, semc-anzu, semc-smultron, sony-amami, sonyaries, sony-castor-windy, sony-coconut, sony-honami, sony-nicki, sony-scorpion, sonyseagull, sony-sirius, sony-taoshan, sony-tulip, sony-yuga, surftab-wintron7.0, t2m-flame,tablet-x64uefi, teclast-x80pro, wiko-lenny3, wingtech-wt88047, xiaomi-aries, xiaomiarmani, xiaomi-cancro, xiaomi-ido, xiaomi-mido, xiaomi-santoni, xiaomi-tissot, zte-kis3[23:32:34] Device [lg-hammerhead]:lg-hammerhead← 機種名をコマンド入力

./pmbootstrap.py init
１．Githubからpmbootstrap.py init を実行した後にWMを選択
A●

Available user interfaces (8):* none: No graphical environment* hildon: (X11) Lightweight GTK+2 UI (optimized for single-touch touchscreens)* i3wm: (X11) Tiling WM (keyboard required)* matchbox: (X11) Very basic user interface for handheld* mate: (X11) MATE Desktop Environment, fork of GNOME2 (stylus recommended)* plasma-mobile: (Wayland) Mobile variant of KDE Plasma, optimized for touchscreen(slow without hardware acceleration!)* plasma-mobile-extras: Plasma Mobile with more apps pre-installed (video and musicplayers, pdf reader, etc.)* weston: (Wayland) Reference compositor (demo, not a phone interface)* xfce4: (X11) Lightweight GTK+2 desktop (stylus recommended)●User interface [mate]: plasma-mobile-extras← WMを入力して選択

17

Boot Weston,Plasma Mobile●●

再起動して運良く焼けているとWayLandが動いた。良かった。
レンガをX台作ってしまったどうしよう？
Weston使いにくくてイヤ。Plasma Mobileはアプリ少ない？

18

Xorg Blackscreen issues
●

●

19

XorgにMesaのパスが壊れているというバグがあり、Xorgが起動しなかった。XFCE4やLXDEやi3など。5/14に直った。
WayLand系のWestonやPlasmaMobileは普通に動く。
PureTryOut @PureTryOut · 4 days ago Developer
I completely missed this issue somehow. The problem is thatsince having our own Mesa package, /usr/lib/xorg/modules/
dri isn't used anymore while it should be. This means only
Wayland DE's work. This is fixed in !359 (merged).

ROM焼きミス！？
●

●

●

●

●

20

同じNexus5でも機種によって焼けなかったり焼けたりする。
ファームウェアのバージョンなどなどや回線都合でエラーが出る
とりあえず、Android bootloaderさえ起動出来れば、flash書き換えflashを消して、オフィシャルROMなどを上書きする
Android bootloaderが勝手にオートリブートする現象は死亡！？
NexusシリーズはROMが公開されているが、機種によってはROM無いので自己責任で要バックアップ
死んでも自己責任で泣かない。ジャンクで安く端末をゲットしよう。

Known issues
●

●

●

●

●

個体差がありファームウェア、OSのバージョンなどで起動しないバグ
XorgがBlackscreenで起動しないMesa関係のバグ。5/14前後で直ったが注意
BIOSロック解除は機種毎に違うので注意。破壊しないよう。
KernelとドライバはAndroidベースだが当然動かないもの多数
USBホスト対応機種と周辺機種必須。
postMarketOSは事実上ローリングリリース。バグが発生すると全機種で死ぬので注意（Blackscreenバグなど・・・）●

ネット接続などがコマンドでやりづらい注意。AlpineLinux覚えよう●

WayLand系のWMはアプリが対応していないものも多い注意●

レンガになっても泣かない自己責任●

Nexus5 16GB入手困難？ 値上がりしてスマン。俺のせい！！？

●

Xperia Z(3000円)やGalaxy SⅡ(1800円)とかも買った。そのうち試す。

21