テクノロイド

コンピュータやゲーム他、色々日々思ったことをつづっていきます。

Android-x86の非root化(unroot)

2018-11-05 00:47:36 | パソコン/マイコン全般
Android-x86がUbuntu上で簡単にインストールできることがわかったのでタブレットで使えるようにした。
ぴよ将棋、AbemaTVやAngry Birds(←1点タッチしかできなかったのでゲーム性悪し)を入れてみたが普通に動くのですっかり気に入った。なんかすっかり普通に動作するんで調子に乗って「ジョジョの奇妙な冒険」アプリを入れたんだが動かなかった。

げげー、これもしかしてroot化してると動かないアプリがあるってやつ?Android-x86は標準でsuコマンドが入っていて開発者オプションの変更でrootに成れる。これはroot化で動かないんだなと推測。root化を解除するには?とググると/system/bin/suと/system/xbin/suを消せば良いらしい。
ところが/system領域がUbuntuのパーティションにsfsファイル(squashfsファイル)で存在し、それをループバックマウントしてるためかmount -o rw,remountで書き換え可能に変更できなかった。

というわけでUbuntu上で/android-8.1-rc2/system.sfsの内容を書き換えることにした。
/android-8.1-rc2フォルダを(nautilusで)開き、system.sfsをダブルクリックしたらsystem.imgが表示されたので/tmpに展開。
それを/mntにマウントしていじった。
# mount /tmp/system.img /mnt (イメージファイルを/mntにマウント)
# rm /mnt/bin/su /mnt/xbin/su
# umount /mnt
これをファイルに戻さなくてはならない。squashfs-toolsパッケージのmksquashfsでできるようだ。
# apt install squashfs-tools (既に入てった)
# mksquashfs system.img system.sfs
# cd /android-8.1-rc2/
# mv system.sfs system_sfs (元のファイルをバックアップ)
# mv /tmp/system.sfs .
suコマンドの無いAndroid-x86ができたので、Android-x86を起動して設定から開発者オプションでrootに成れないよう指定。
そしてジョジョアプリを起動するが動かない・・・。

とりあえずWindowsにAndroidエミュレータのBlueStacks 4をインストールしてジョジョアプリが動くか試してみたら動いた。
エミュレータでも動くんならrootに成れなかったら動くんじゃないの?と疑問に思いつつ一旦作業中止。
翌日ふとアプリを入れ直したらいいんじゃね?と思って、設定からアプリデータのリセットをしてジョジョアプリを入れなおしたら動いた!

いやー、9インチフルHDのタブレットでジョジョが見られるのいいねえ。Androidタブレット持っててもHD止まりのだったから感動。PCで動かせば大画面でAndroid使えるんだな。
なんて思っていたらとっくにRemixOSでデレステというゲームを大きい画面でやるとか流行ってた(?)ようだ。
とにかくAndroidのこの自由度に感激。(ベースになってるLinuxのおかげ!?)

P.S.
RemixOSだと起動オプションにREMOUNT_RW=1を追加すると書き換え可能状態でマウントされるらしいので、Android-x86でもできるかやってみたが駄目みたい。残念。
コメント   この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« LXD3.0でzfsのストレージプー... | トップ | iPad ProがUSB-Cになって食指... »
最新の画像もっと見る

コメントを投稿

パソコン/マイコン全般」カテゴリの最新記事