Android One S3でDSUをしようとした
nplです。
タイトル通り、Android One S3でDSU(Dynamic System Updates)をしようとした話です。(意味深な過去形)
Dynamic System Updates
元のAndroid端末の環境を崩すことなく別のAndroidをインストールするシステム(雑解説)。
用意したもの
・SHARP Android One S3(S3-SH)
ベースOS Android 8.0
最新OS Android 10
Bootloader Unlock済み(fastboot oem unlockだけで解除できた)
とある場所で2200円で購入したものです。個人的には連絡&ニュース閲覧には丁度いいスペックなのでメイン機運用中。
DSUが登場したのがAndroid 10あたりからなので動作するのか。。。
・Ubuntu 20.04 LTS
adbとかのコマンド入力に使用。
Windowsと違って"sudo apt install ~"だけで環境構築できるのでいいですね。。。
やってみよう
詳細は公式の情報を見たほうがいいです(雑)。
1.DSUフラグの有効化
adb shell setprop persist.sys.fflag.override.settings_dynamic_system true
2.GSI(Generic System Image)のダウンロード&変換
2-1.GSIをダウンロード
公式GSIとかLineage OSのものでも拾ってきましょう。
2-2.GSIをDSU用に変換
simg2img system.img system_raw.img
※simg2imgはapt等でインストールしましょう。
2-3.圧縮
gzip -c system_raw.img > system_raw.gz
3.GSIをAndroid端末にコピー
adb push system_raw.gz /storage/emulated/0/Download/
4.DSUを起動
adb shell am start-activity \
-n com.android.dynsystem/com.android.dynsystem.VerificationActivity \
-a android.os.image.action.START_INSTALL \
-d file:///storage/emulated/0/Download/system_raw.gz \
--el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \
--el KEY_USERDATA_SIZE 8589934592
コマンド長い。
最後のKEY_USERDATA_SIZEは端末ストレージと相談して決めましょう(なおBit単位)。
5.システムの再起動
できませんでした
4.のコマンドを実行すると通知にプログレスバーが出現し、パスワード入力後にインストールが始まるようですが、、、
一瞬何かが映ってすぐに消えてしまうんですよね。。。
通知ログを見てみます(設定ウィジェットからアクセスできます)。
あらビックリ。Install failed.
このあとストレージの空き容量を増やしたりBootloaderの状態を見直したり他のGSIをインストールしてみたり割り当てるストレージを増やしたり、、、
最後は思い切って初期化してから挑戦しましたが変化はありませんでした。悲しい。。。。
やっぱりSHARPのキャリアモデルだからとかの理由なのかな。システムが制限されているのかそれともDSUが実装されていないのか。。。。
いずれにしてもAndroid One S3でのDSUはできずに終了。
おわりに
今回DSUに挑戦しましたが失敗に終わりました。
DSUに成功したらRootでboot.imgとか取得しようかと考えていましたがそう簡単にはできるものではなさそうですね。。。。
この問題の解決方法が見つかったときにはもう一度挑戦してみたいと思います。
グダグダなnoteですが、以上です。
(Project Treble対応だからGSIをダイレクトにインストールできなくはないけど、、、うーん、、、)
追記
旅行に行く前にブートローダーをロックしました。
fastboot oem lock
少し前のAndroid端末の場合、ロックするときにデータは消えないみたいなことが書いてあった気がしますが、S3-SHの場合は直前に「データ消すよ!」と警告され、初期化されていました。φ(..)メモメモ…