PC関連のチラ裏

自分用(素人)

Androidの仕事用プロファイルのLINEを端末間移設した(要root)

IS12M(RAZR)という2012年発売の3Gスマホが家に転がっておりまして、LineageOS 14.1(Android 7)が入っており、仕事用プロファイルにLINEが入っていたのですが。
起動し動作はするものの、バッテリーは妊娠済、画面はOLED特有の焼付き、恐ろしいほどのモッサリ感、画面をタッチしてもタッチしていない箇所が反応するなど、地獄のような有様となっていたので、移設することにしました。

とはいえ大抵のデータの移設はちょろいもんで、一番大変だったのはLINE、それも仕事用プロファイルで入れたサブのLINEのデータでした。
電話番号も解約済のもので昔取った物だったので、再ログインすることはできず。使っていないアカウントだったので別に消してもよかったのですけど、勉強がてら移設することに。
もちろん要root。

LINEの移設先はUbuntu Touchを入れていたNexus 5にしました。こっちもかなり古いですが、IS12Mよりは相当マシです。Quadrantというベンチマークで10倍ほど性能差があるようです。
わざわざUbuntu Touchまで入れたものの、もう使わなくなっていたので、コイツでいいや。

移設前IS12M(Nougat)での作業

  • LINEのデータの回収

    メインのプロファイルのLINEはTitanium Backupがぶっちゃけ楽なのですが、仕事用のサブのLINEはTitaniumを使えません。その上現行のTitanium BackupがAndroid13非対応と考えられ、13だとメインプロファイルでも復元後起動しませんでした。
    ということでファイラー(X-plore)で開いてzipで固めてUSBメモリやNWドライブ等へ回収します。回収したものを新スマホパーミッション等修正すると起動できるようになります。
    パスは、
    メイン: /data/data/jp.naver.line.android
    仕事用: /data/user/10/jp.naver.line.android

  • Android IDの確認

    LINEの移設には /data/data/jp.naver.line.android (あるいはその類のディレクトリ)のデータを移設した上でAndroid IDを合わせる必要があるので、元のスマホAndroid IDは確認する必要があります。
    ということで com.appzdevelopers.anddevinfof のアプリで通常と仕事用プロファイルの両方のAndroid ID(16桁の16進数)を確認しておきます。アプリのapkは適当にネットで拾いました。
    なおNougatまではファクトリーリセット毎に共通のものが1つ付与され、Oreo以降はアプリ毎に付与されるらしいです。もちろんプロファイル別。

    ちなみにMigrateというアプリで仕事用ユーザーのデータを移設できるという情報も得たのですが、私ではIS12MにMagiskはおろかSuperSUすら入れられなかったので断念しました。lineageosのaddonsuを入れてしまったからかもしれない。addonsu-removeも試したんですけどね・・
    また、Android IDはかつてはTitaniumでストレージの設定からバックアップ取れたらしいですが、Oreo以降はアプリ毎に付与ということなので、8以降はおそらくTitaniumで復元できないんだろうなぁ・・というより、できなくて色々調べる羽目になりました。

移設先Nexus 5の用意

Nexus 5の状況

  • バッテリー妊娠

    開封しピンセットでバッテリーの表面だけに穴を開けてガス抜き、テープで封。もちろん自己責任。開封時にやらかしたのかモバイルネットワークだけ挙動不審になってしまったけど、まぁNexus5くんにはSIM挿さないしOKです。

  • Ubuntu TouchをAndroidに戻す

    Ubuntu TouchからAndroidに戻すには、fastbootからGoogleのファクトリーイメージをflash-allするだけ。userdataがどうこうとエラー吐いた気がしましたが、待っていたら普通に起動しました。NGだったらzip内ファイルを手動でflashすれば良い・・らしいです。

  • TWRP

    以下の新しいverのカスROM導入には/systemの容量を増やさないといけないらしく、xdaの改造版(twrp-3.7.0_9-HH.R.17.img)を利用。

  • ROM

    xdaに非公式LineageOSがver20(Android 13)まで豊富に用意されていたので、新しい方から順に試行。したところ、Android13で何とかなったので13で。正直10くらいのインターフェースが気に入っている。

LINE移設先(Nexus5)での作業

  1. TWRPを焼く

    fastboot flash recovery twrp-3.7.0_9-HH.R.17.img
    TWRP起動後、/system パーティションを広げるためにAdvanced > Terminalから"hh_repart -m"を実行。TWRPの配布フォーラムに詳細あり

  2. USBメモリに以下を用意
    • 各LineageOSのROM。今回は lineage-20.0-20230511-UNOFFICIAL-hammerhead-signed.zip
    • 各LOSの推奨Gapps。今回は BiTGApps-arm-13.0.0-v2.0-CORE.zip
    • Magisk_26.1.zip (最新)
    • IS12MのLINEのデータ (jp.naver.line.androidのzip)
  3. LOSとMagiskを焼く
    1. TWRPを起動してUSBメモリ接続、USB-OTGをMount
    2. Format Data含めて全てWipe
    3. LOSイメージをInstall
    4. 直後にGappsをInstall
    5. 一度システム起動、初期設定したらTWRPへ再起動
    6. LINEのデータのzipを内部ストレージ(/sdcard)にコピー
    7. Magiskをインストール。初回起動前にインストールしても入らないっぽい(or認識遅い?)
    8. システム起動して、MagiskアプリからMagiskを再導入(直接インストール)。要ネットワーク
    9. システム再起動
    10. Google PlayにログインしてLINE、Island、X-ploreをインストール
  4. LINEのデータを移設する
    1. メインと仕事用のLINEをそれぞれ正常起動させる。(Android IDの項目の生成)
    2. LINE終了、設定から各LINEのストレージを消去。
    3. X-ploreでAndroid IDが生成されているのを確認する。

      メイン: /data/system/users/0/settings_ssaid.xml
      仕事用: /data/system/users/10/settings_ssaid.xml

    4. LINEのデータを復元する。

      jp.naver.line.android のzipファイル2つをそれぞれのプロファイルの位置に展開する。まだLINEは起動しないこと。
      メイン: /data/data/jp.naver.line.android
      仕事用: /data/user/10/jp.naver.line.android
      アプリデータがそこになかったら /data_mirror/null にあるかも?
      Android12以下の場合はメインプロファイルはTitanium Backupの方が以下の作業不要で楽。

    5. 再起動しTWRPへ。
    6. Android ID(SSAID)を書き換える

      Advanced > File Managerで上記の settings_ssaid.xml をEditし、jp.naver.line.androidの項目のvalueとdefaultValueの値を、旧スマホAndroid IDに書き換える。
      エディタの機能なのか勝手に改行されるけど修正する。もしかしたらX-plore上で編集したファイルを/sdcardにでも保存して、TWRP上で上書きすれば十分かもしれないけど試してない。
      Android上で編集すると再起動で元の値に上書きされるので、TWRPで作業した方がいい。

    7. LINEのデータのパーミッションを書き換える

      Advanced > Terminal でターミナル起動

      cd /data/data		#メインプロファイル
      ls -l			#owner確認。"u0_a123"みたいになってる
      cd jp.naver.line.android
      chown -R u0_a123:u0_a123 *	#グループと所有者をu0_a~~~にする。u0_a123は確認したものに適宜変更
      chmod -R 771 *			#アクセス権限を全て771にする。700とか660とか色々なファイルあったけど、全て771で動いたのでヨシ
      
      cd /data/user/10	#仕事用プロファイル
      ls -l			#owner確認。"u10_a123"みたいになってる
      cd jp.naver.line.android
      chown -R u10_a123:u10_a123 *	#グループと所有者をu10_a~~~にする。u10_a123は確認したものに適宜変更
      chmod -R 771 *			#アクセス権限を全て771にする。700とか660とか色々なファイルあったけど、全て771で動いたのでヨシ
    8. システム起動、X-ploreでAndroid IDやパーミッション等が書き換わっているかチェック。Androidから見ると所有者が数字に変更されていますが、グループが書き換わっているので大丈夫かも。
    9. LINE起動、成功したらかつてのトークが表示される。された
    10. 成功確認したらTWRPに入って丸ごとバックアップ!

[APP][ROOT][5.0+][1st Nov 2020] Migrate - custom ROM migration tool | XDA Forums

マルチユーザー対応のsuアプリが使えてMigrateが使えたら、Migrateの方がお手軽なんだろうなぁとは思います。

Androidのこと何もわからないですが、とりあえずメイン/仕事用プロファイルの2つのLINEを再ログインすることなく移設出来たので、一般人的には達成感あり。
IS12M、さすがに性能がなさすぎて何にも使えませんし、どうしましょう・・捨てるしかねえ。


参考文献