arrows zのルート奪取とソニエリLiveView
どうも。お久しぶりです。
今回は話が話なので、わかる人のみに向けです。
自己責任が取れない人は真似しないでください。
最近、ひょんなことからソニエリのLiveViewなんかを手に入れまして。
腕時計型のガジェットで、Android端末と繋いで色々しちゃう、新着メールなんかも見ちゃうというスグレモノです。
ですがこいつ、一つ難点がありまして。
Bluetoothなんで、すぐに切断されます。
一応切断されたら、右側のボタンを押すことによって再リンクするんですが、こいつがたちがわるい、接続するたびに「ペア設定リクエスト」なんてAndroid側に出てきて、いちいちタップしないと繋がらないんですね。
最初は我慢して使ってたんですが、どうも、腕時計で確認したいのにAndroidを出さないと駄目だという本末転倒的なことにイライラしてきて、何でか確認してみました。
色々なサイトを見ると、AndroidのGingerbredからこうなるとか、ソニエリ端末ではまともに動くとかそういう情報とともに、原因が。
/data/misc/bluetoothd/yo:ur:de:vi:ce:ad/linkkeys
の中の記述が
li:ve:vi:ew:ad:dr xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 4 -1
となってるんですね。これはおかしい。本来は、
li:ve:vi:ew:ad:dr xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0 4
でないといけない。
という事で、root取得から書き換えまで、解説込みで行こうと思います。
まず、Android SDKが要ります。適当にインストールして下さい。
その後、ArrowsZのADBドライバ入れて、adb shellできるようにして下さい。これが大前提。
adb出来てるものとして話を進めます。
PCと接続跡、adb shellでシェルへ。
この段階では$です。一般ユーザです。
で、
cd /data/local
をタイプ。
lsで、motion_activemass02.dbが存在することを確認してから、あれば
mv motion_activemass02.db motion_activemass02.db-
してください。自分の環境にはありました。つまりこれで、退避させます。
次に、
ln -s /data/local.prop motion_activemass02.db
をタイプ。シンボリックリンク作成。つまり、motion_activemass02.dbへの書き込みは/data/local.propへの書き込みとするわけです。
こうすることによって、motion_activemass02.dbを書くとき、その持ち主が、/data/local.propを作ってくれるわけですね。で、こいつはroot:rootでさらに、666なのです。素晴らしい。
この状態で、設定→自分からだ設定→ウォーキング/Exカウンタ利用設定から「歩数計利用」にチェック付けて、少し歩きます。実際はチェックつけるだけでいいかもしれないです。で、チェック外す。
この間、ADBは閉じずにokです。
そうすると、なんと、/data/local.propが出来てると思います。root:root 666で。
こうすればしめたものです。
必要があれば、mv motion_activemass02.db- motion_activemass02.db で、退避したものを戻します。
次に、
echo ro.kernel.qemu=1 > /data/local.prop
で、/data/local.propに書き込みます。
これは、adbdで接続されるときにrootになりますよという印。
ここでパーミッションで蹴られなければ、ctrl+Cでadb shell抜けてから、
adb reboot
で端末を再起動します。
瞬時に、DOS窓やらターミナルから、
adb wait-for-device
を叩いておきます。
繋がった瞬間(コマンド抜けた瞬間)、adb shell rm /data/local.prop
を叩いてください。こいつが残ってるとそれなりに面倒なことになります。
adb wait-for-device & adb shell rm /data/local.prop
をたたいておけば万全ですね。
で、このあと、adb shellを叩くと
#
で、特権になってると思います。おめでとう。
su入れたい人は、ここで入れてくださいい。ただ、arrowsは/usr/xbin/suがあると起動しないので、su以外のファイル名にしてください。
次にLiveViewの設定。
cd /data/misc/bluetoothd
で、ディレクトリを移動して、
ls
を叩いてください。
あなたの端末のBluetoothのMACアドレスで、
yo:ur:de:vi:ce:ad
があるはずです。
そのまま、
cat /data/misc/bluetoothd/yo:ur:de:vi:ce:ad/linkkeys
を叩くと、
li:ve:vi:ew:ad:dr xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 4 -1
と出るはずです。出なければ、ちゃんとAndroidとLiveViewが繋がってるか再確認してから、再度頭から手順を繰り返してください
(おそらくこの状態で設定のBluetoothは開けないはずです)
出れば、表示されたものを「li:ve:vi:ew:ad:dr xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx」までコピーし、
echo li:ve:vi:ew:ad:dr xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0 4 > cat /data/misc/bluetoothd/yo:ur:de:vi:ce:ad/linkkeys
と叩いて、adb shellを抜けて、
adb reboot
で、すべてがうまくいくと思います。
何の保障もしませんが、今のところ全アップデートかけてもこれで動いてます。