postmarketOSをZE500KLに入れる
-
pmOSの移植ガイド:Porting to a new device - postmarketOS
-
Z00L がとても参考になる
Model name | Model No. | Codename | SoC |
---|---|---|---|
Z00ED | ZE500KL | Z00E | MSM8916 |
Z00RD | ZE500KG | Z00R | |
Z00WD | ZE550KG | Z00L | |
Z00LD | ZE550KL | Z00L | MSM8916 |
Z00MD | ZE600KL | Z00L | |
Z00MDD | ZE600KL | Z00L | |
Z00TD | ZE551KL | Z00T | |
Z00CD | ZX550KL | Z00T | |
Z00UD | ZD551KL | Z00T | |
Z00UDH | ZD551KL | Z00T | |
Z011D | ZE601KL | Z00T | |
Z011DD | ZE601KL | Z00T |
720p ZF2 Laser = Z00L 1080p ZF2 Laser/selfie = Z00T Devices that have same codename can run each other’s ROMs/recoveries. For e.g. ZE550KL and ZE600KL both have same codename “Z00L”. Hence, ROMs made for ZE550KL will work on ZE600KL and vice versa Exception: ZE500KL ROMs work on ZE500KG though they have different codename
- WW = worldwide
- shakalaca氏が詳しそう
- 業界人って感じ
- Android端末の保存領域
- パーティション
- boot
- recovery
- system
- userdata
- ブート
- 起動モード
- 通常のブート
- ADB経由で操作できる(USBデバッグと呼ばれる)ようにするためには、開発者オプションから認可する必要がある。
- リカバリー
- ADBが使える
- 代替:TWRP, OrangeFoxなど
- ブートローダ (fastbootなど)
- ADBは使えないが、ブートローダに対応するPC側のコマンドを利用できる。
- fastbootなら
fastboot
コマンドを利用する。他のブートローダならheimdall
などを使う。
- fastbootなら
- 代替:lk2ndなど
- fastbootではないが、fastbootのインターフェースに対応していて
fastboot
コマンドで動くブートローダもある
- ADBは使えないが、ブートローダに対応するPC側のコマンドを利用できる。
- 通常のブート
- 起動モードの切り替え
- ハードウェアから:Volume Up/Down を押しながらボタンで起動
- コマンドラインから
- 再起動して、通常のブートへ:
adb reboot
,fastboot reboot
- 再起動して、リカバリーへ:
adb reboot recovery
,fastboot reboot recovery
- 再起動して、ブートローダへ:
adb reboot bootloader
,fastboot reboot bootloader
- 再起動して、通常のブートへ:
- 起動モード
- ソースコード
- カーネルとディストリビューション
- 本家(torvalds/linux)
- vanilla Android
- LineageOS
- いわゆる「カスタムROM」の一種
- CyanogenOSの後継
- postmarketOS
- Alpine Linux
- msm8916-mainline/linux
- mainline kernelに取り込まれるまでの一時待機場所
- ASUSが公開しているカーネル (stock)
- mainline = upstream?
- ファームウェアアップデート -
- ブートローダのアンロック
- ASUS公式のAPKから
- Marshmallowでのみ使える
-
[昼休みが元に戻った Bubble, bubble, toil and cuddle !!! - 楽天ブログ](https://plaza.rakuten.co.jp/sorriman/diary/202004160000/)
- 非公式のAPKから(上と同一?)
- Marshmallowでのみ使える
-
[Zenfone 2 Laser (Z00ED) ジャンク品の動作確認をした Bubble, bubble, toil and cuddle !!! - 楽天ブログ](https://plaza.rakuten.co.jp/sorriman/diary/202004150000/) - ze500kl-root/0518-1134_SIGNED_UnlockTool_ZE500KL_AndroidM.apk at utampisyek/ze500kl-root
-
[Zenfone2Laser(ZE00KL)のカスタムROM導入に難儀した話 むいか堂 備忘.Log](https://muikadou.com/?p=1181)
- TWRPから
- 公式のアンロック手段
- Xiaomiなどが提供している
- 開発者オプションにOEM Unlockなる項目があるらしいが、手元のMarshmallowでは確認できず
fastboot flashing unlock
,fastboot oem unlock
などを打ってみる
- ASUS公式のAPKから
- カスタムブートローダの導入
- lk2nd
- トラブルシューティング
- fastboot loop
- 文鎮化 (brick)
- soft-brick
- hard-brick
-
userdebug imageとは?
- ZenFone 2 Laser 関連の情報
-
[[INDEX] Zenfone 2 Laser : ROMs Root Recovery Unbrick MODs Guides XDA Forums](https://forum.xda-developers.com/t/index-zenfone-2-laser-roms-root-recovery-unbrick-mods-guides.3369569/)
-
- XDAは分量が多い割には小手先のworkaroundばかりで役に立たないので、やはりソースコードを読むのが良い
- ファームウェア
- 俗にROMとも呼ばれる
- 形式
- ASUS公式が公開しているファームウェア
- ZenFone 2 Laser (ZE500KL) - Support
- signApkで署名されたzip
- APKの実態はZIP
- 暗号化はされていない
- XDAで拾ってきた(自称公式の)ファームウェア
- MEDIA CARE TELECOMMUNICATION INDONESIA: rom csc asus z00ed ze500kl
- .raw
- asus package
$ xxd ZE500KL_userdebug.raw | head 00000000: 6173 7573 2070 6163 6b61 6765 0000 010c asus package.... 00000010: 0000 0000 0000 0000 1100 0000 0000 0000 ................ 00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000030: 7000 6100 7200 7400 6900 7400 6900 6f00 p.a.r.t.i.t.i.o. 00000040: 6e00 0000 0000 0000 0000 0000 0000 0000 n............... 00000050: 6770 745f 626f 7468 302e 6269 6e00 0000 gpt_both0.bin... 00000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000070: 0086 0000 0000 0000 0000 0000 0000 0000 ................ 00000080: 0000 0000 0000 0000 cf54 6444 0000 0000 .........TdD.... 00000090: 7300 6200 6c00 3100 0000 0000 0000 0000 s.b.l.1.........
- 配布されているPythonスクリプト ASUS RAW flash file unpacker でunpackできる
- 入れるとデフォルトのAndroidっぽい画面が表示される
- imgファイル
- ASUS公式が公開しているファームウェア
- 書き込みの方法
- リカバリーモードからadb sideload
- 標準のリカバリーからも、TWRPからもできる
- fastboot flash
- QFIL Tool
- リカバリーモードからadb sideload
- デバイスツリー (Device Tree)
- dts (device tree source) を
dtc
(device tree compiler) によって変換した結果、 dtb (device tree binary) を得るdtc
による逆変換も可能:dtc -o hoge.dts hoge.dtb
- dtsの作成方法
- 実機から取り出す
- ファームウェアから取り出す
- 類似の機種を真似る
- dts (device tree source) を
-
[Android Flash Tool Android Open Source Project](https://source.android.com/docs/setup/build/flash) - TWRP
- 非公式のリカバリー領域用のファームウェア
- 有志によるforkが多数存在する(unofficialと呼ばれる)
- Asus ZenFone 2 Laser ZE500KL Stock Firmware ROM (Flash File)
- TWRPが起動 fastboot boot
- twrp-3.0.2.0-Z00E-MM.img (sha1: a9ca6ac00ce2ce2c5dd6868c959d4c5a8c4fc006)
- ファイルをどこで手に入れたか忘れた・・・
- MMはAndroidのバージョン、Marshmallowを指す
- これ以外のimgを使うと
dtb not found
などのエラーが出る-
[Unable to flash TWRP (remote: dtb not found) XDA Forums](https://forum.xda-developers.com/t/unable-to-flash-twrp-remote-dtb-not-found.3358566/)
-
- twrp-3.0.2.0-Z00E-MM.img (sha1: a9ca6ac00ce2ce2c5dd6868c959d4c5a8c4fc006)
- flash boot-signed.img to recovery
- sideload stock image
-
boot twrp
- ZE500KLのASUS公式ファームウェア
- JP SKU対応を古い順に
# ファイル名 Android version 1 UL-ASUS_Z00E-JP-12.8.5.229 Lollipop 2 UL-ASUS_Z00E-JP-13.10.10.34 Marshmallow 3 UL-ASUS_Z00E-JP-13.1011.1711.16 Marshmallow - おそらく、2, 3を導入する前に1を導入しておく必要がある
- 日付関連のエラーが出る
- META-INFにある
android_source
を参照
- 【Hardware】ASUS Zenfone 2 Laser(ZE500KL)を最新バージョンまでアップデートする
- unlock
- adb push ZE500KL_BootloaderUnlock.zip /sdcard/Downloads
- install on twrp
- 署名されていないと動かない
-
recovery以外は書き込めない
- twrp -> U12のandroid_source?書き換えが必要
- signApkの署名を無視する?ので書き換えOK
- エセ recoveryはOPEN_Phoneなので、書き換えは不要(要検証)
- 署名を守るので書き換えると動かない
- TWRPはmarshmallowでしか動かない
- インストール後の再起動はフル再起動(fastboot, recoveryはだめ)
- ファームはどうやらSR1, ER1, ER2, PR, EVBがある
- 古いのはevbがあってprがない
- 新しいのはprがあってevbがない
-
PRのDTSでlk2ndが起動
- Asus-MSM8916/android_device_asus_Z00ED: Asus ZenFone 2 Laser ZE500KL device tree
- unified device treeらしいが、dtsを含まない
- LineageOS/android_kernel_qcom_msm8916
- lk2nd
- dtsはarch/arm/boot/dts/qcomにある
- Makefileを見ると実際にどれを使っているのかわかる
- arch/arm/boot/dts/qcom - kernel/msm - Git at Google
- Androidに入っているdtsと入っていないdtsの違いは?
- shakalaca/ASUS_ZenFone_ZE500KL: Kernel source of ASUS ZenFone 2 Laser (ZE500KL, Z00E)
kernel/arch/arm/boot/dts/qcom/msm8916-(asus-)ze500kl-*, Makefile
に関連する情報がある- https://github.com/shakalaca/ASUS_ZenFone_ZE500KL/tree/android-5.0/kernel/arch/arm/boot/dts/qcom
- android_kernel_asus_msm8916/arch/arm/boot/dts/qcom at lineage-15.1 · LineageOS/android_kernel_asus_msm8916
-
android_kernel_asus_msm8916/msm8916-mtp.dtsi at lineage-15.1 · LineageOS/android_kernel_asus_msm8916
- MTP: Mobile Testing Platform
- CDP
- MSM
- evb: evaluation board
- Search · board-id
- 他の端末のpostmarketOS Wikiページや各種ソースコード、PRを読むのも参考になる
- 红米2 安装Linux: postmarketOS(基于Alpine)及后续玩法 - 哔哩哔哩
- device tree - Problems porting lk2nd to Xiaomi Redmi 7 (onclite) - Code Utility - Code Utility
- DTS (extracted from device and decompiled)
- antony-jr/postmarketos-asushh-z00l: Configuration files for compiling postmarketSO in Asus Zenfone 2 Laser with a mainline kernel.
- lk2nd
- muikadou.com
- ソースコード: TeamWin/android_bootable_recovery (GitHub)
-
adb shell getprop
- modelは重要ではない
- wiki 困るところ
- chassisってなに
- ドキュメントの順序がわからん
- cache_dirとか明示しよう
- l10の電圧が違う、l11がコメントアウトされてる
build kernel
$ cd path/to/msm8916-mainline/linux
$ source path/to/pmbootstrap/helpers/envkernel.sh
$ make msm8916_defconfig pmos.config
$ make -j(nproc)
$ pmbootstrap build --envkernel linux-postmarketos-qcom-msm8916