android

Androidに関するメモ

どの端末にもだいたい入れるやつ。

中華タブはAOSPの秘密鍵を使っているので検証無効フラグを立てて作ったイメージを焼けば事実上チェックが無くなりbootload unlockedになる。

git cloneすれば必要な秘密鍵が付属している

Windows は PATHにopesslが存在する必要がある。

git clone https://android.googlesource.com/platform/external/avb
avbtool.py make_vbmeta_image --output vbmeta_disable.img --set_verification_disabled_flag --set_hashtree_disabled_flag --key test/data/testkey_rsa2048.pem --algorithm SHA256_RSA2048
avbtool.py make_vbmeta_image --output vbmeta_disable.img --set_verification_disabled_flag --set_hashtree_disabled_flag --key test/data/testkey_rsa4096.pem --algorithm SHA256_RSA4096

上記で作ったvbmetaやLineageOSから提供されるvbmetaの署名を対応ブートローダに信用させる。

avbtool.py extractpublickey --key test/data/testkey_rsa4096.pem --output testkey.avbpubkey
fastboot flash avb_custom_key testkey.avbpubkey

本来ならばRootを取っているのでEasy Dpi Changerを使用すれば一発ですが、

rootを取ることができない端末や前述のアプリにとんでもない値を指定してしまったせいで端末が操作出来なくなった際の救済を行うことができます。

PCから操作する場合はRoot権限無しで動作します。

adb shell wm density 560 && adb reboot
file lineage-20.0-20241118-UNOFFICIAL-a64_bvN.img
tune2fs -l lineage-20.0-20241118-UNOFFICIAL-a64_bvN.img | grep "Filesystem features"
truncate -s 4G file_name.img
e2fsck -f lineage-20.0-20241118-UNOFFICIAL-a64_bvN.img
resize2fs lineage-20.0-20241118-UNOFFICIAL-a64_bvN.img
e2fsck -E unshare_blocks lineage-20.0-20241118-UNOFFICIAL-a64_bvN.img
zip焼くなど編集する

fastboot fetch system system.img
tune2fs -r 0 system.img

resize2fs -M system.img
truncate -s $(dumpe2fs -h system.img | awk '/Block count:/{bc=$3} /Block size:/{bs=$3} END{print bc*bs}') system.img

近年のAndroidデバイスはA/Bパーティションやdynamicパーティション等を採用しており古いROM焼きのノウハウが通用しなくなっておる。

bootloader unlockを行ってもdm-verfyが生きていてブートループやデータのロストが起こりうるので混乱しないようにまとめ。

factory image等何かを焼くたびにやっておく

fastboot flash vbmeta vbmeta.img --disable-verity --disable-verification
  • 開発者オプションからBootloader unlockは普通にやる。
adb reboot bootloader
fastboot flashing unlock

やろうと思ってまとめていたけど辞めた。

ストックをAOSPModsでいじくり回す方向に変更。

Googleのサポートが終わったらやる

  • recoveryの形式が変わっているので公式のドキュメント通りに作業
  • vendor_kernel_boot がリカバリーのようだ?

下記で指定するimgファイルは全て [https://download.lineageos.org/devices/panther/builds] から落としたもの.

zipはそれぞれ関連先から落としたもの。Gappsはpixelなのでfullを焼いて全力でGoogleに魂を売る

MAgiskはapkをzipにリネーム

fastboot flash vbmeta vbmeta.img --disable-verity --disable-verification
fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
fastboot flash vendor_kernel_boot vendor_kernel_boot.img
fastboot reboot bootloader
fastboot flash vendor_boot vendor_boot.img
fastboot reboot recovery
adb sideload lineage-20.0-20230908-nightly-panther-signed.zip
rem リカバリ上でリカバリを再起動
adb sideload NikGapps-full-arm64-13-20230716-signed.zip
adb sideload Magisk.v26.3.apk.zip

Wifi版

3G版

「戻る」+電源ボタンで入れる。 ドライバはGooglez純正を無理やりインストール。 fastboot コマンド -i 0x409 で使用可能。

「ホーム」+電源ボタンで入れる 「ホーム」を1回押すと操作可能になる。

  • 液晶 claa070ld0fcw
  • LVDSレシーバー SN75LVDS86A
  • タッチコントローラー tsc2046 (ads7846のドライバが使用可能)
  • Wifi bcm4329 NECのソースツリーから推測