popin aladdin 2でadbを有効化する
October 04, 2020
前置き
popin aladdinというデバイスを購入したのだが, adbがブロックされていて, kodi等の野良apkをsideloadできない. system領域を書き換えてやることで, adbdを起動させたい.
当然今後のOTAで失敗するであろうと考えられるので, 導入は慎重に…
Stock ROM
とりあえずオフィシャルのROMを手に入れる.
wget $(curl 'http://jp2-update.popin.cc/api/update?gimiPid=TTTTTTTTTTTT&systemVersion=V1.1.0&androidVersion=Android9&type=rom' | jq ".data.packageDownloadUrl" | sed 's/"//g')
TTTTTTTTTTTT
は自分のシリアルを入れてもよいし, 入れなくてもよい.
System領域の解凍
先程ダウンロードしたファイルを解凍して,
brotli --decompress system.new.dat.br --output=system.new.dat
wget https://raw.githubusercontent.com/xpirt/sdat2img/master/sdat2img.py
chmod +x sdat2img.py
./sdat2img.py system.transfer.list system.new.dat system.img
とする.
これでシステム領域のext4イメージが手に入った.
system.img
の書き換え
mkdir output
sudo mount -o loop system.img output
等でsystem領域をマウントして, output/system/etc/prop.default
のパラメータを下記のように書き換える.
ro.secure=0
ro.debuggable=1
persist.sys.usb.config=adb
ro.adb.secure=0
sudo vim output/system/etc/prop.default
等で編集すればいい.
次に認証に穴をあけたadbdを用意して, 標準のもの(output/system/bin/adbd
)と差し換える.
sudo cp /path/to/adbd output/system/bin/adbd
chmod 755 output/system/bin/adbd
/path/to/adbd
は自分のadbdへのpathを入れる.
最後にアンマウントしておこう.
sudo umount output
アップデートファイルの作成
git clone https://github.com/khadas/utils.git
cd utils
tee ./aml_upgrade_package.conf <<EOF
[LIST_NORMAL]
[LIST_VERIFY]
file="system.img" main_type="PARTITION" sub_type="system"
EOF
./aml_image_v2_packer -r ./aml_upgrade_package.conf /path/to/parent/of/system.img XGIMI_ALADD_II_PA20U01DJ.bin
/path/to/parent/of/system.img
はsystem.img
の親ディレクトリを意味している.
Flash
FAT32でフォーマットしたUSBメモリにXGIMI_ALADD_II_PA20U01DJ.bin
をコピーする.
USBメモリをデバイスに挿入して, システム環境設定
-> システムアップデート
-> USBメモリによるアップデート
を選択する.
暫くまつと再起動するので, なぞのアナウンスがながれるが, 慌てずにリモコンのホームボタンを押す.
システム環境設定
-> その他の設定
-> リセット
からデータ領域の初期化をするとよい.