シシャモ備忘録

IT機器をいじった手順を記録。
これらの記事は自分用の備忘録です。参考にするのは自己責任で。

nexus4 セルスタンバイ対策 - アンテナピクトは立った編

2013-06-18 17:18:10 | android

最初はやぎLabsを参考にさせてもらおうかと思ったが、再コンパイルの部分が記載ミス(classes.odexではなくclasses.dexかも?)なのかうまくいかず、そのもとになったLifeScape(root化不要法)も参考にさせて頂いた。

【準備】

カレントディレクトリに "7za.exe", "busybox", "dexopt-wrapper", "smali*.jar", "baksmali*.jar"を準備。最後の2つはそれぞれ"smali.jar", "baksmali.jar"に変名し、コピーしておく。まとめたものはここ

ちなみに /system/xbin には初めから "dd"コマンドも"cp"コマンドも入っており、busybox必要ないかも。また、root化時に "SU_Busybox_Package.zip" をインストールしていれば、当然busyboxも入っている。

Android SDK, Java SE JDK を使えるようにする。(root化の記事参照)
端末をデバッグモードで接続。
Android 4.2.2 のAPI level は17。

【作業】

DOS窓を立ち上げて /system/framework 以下のファイルを temp フォルダに取得。

>mkdir temp
>cd temp
>adb pull /system/framework

逆コンパイル

>java -jar ..\baksmali.jar -x telephony-common.odex

必要箇所の修正
"out\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali"の以下の部分を

/////////////////
.line 702
.local v13, voice_capable:Z
if-nez v13, :cond_86
/////////////////

から

/////////////////
.line 702
.local v13, voice_capable:Z
if-eqz v13, :cond_86
/////////////////

に書き換え。

再コンパイル

>java -jar ..\smali.jar --api-level 17 -o classes.dex out
>copy /y /v telephony-common.jar telephony-common.jar.org
>..\7za a -tzip -mx0 telephony-common.jar classes.dex
>cd ..

端末内で odex を作成

>adb push temp\telephony-common.jar /data/local/tmp
>adb push dexopt-wrapper /data/local/tmp
>adb shell chmod 755 /data/local/tmp/dexopt-wrapper
>adb shell rm /data/local/tmp/telephony-common.odex
>adb shell cd /data/local/tmp; ./dexopt-wrapper telephony-common.jar telephony-common.odex
>adb shell rm /data/local/tmp/telephony-common.jar
>adb shell rm /data/local/tmp/dexopt-wrapper

PC側にあるCWMのイメージファイルから起動させる

>adb reboot bootloader
>fastboot boot recovery-clockwork-6.0.3.1-mako.img

odex の入替え

>adb shell mount /data
>adb shell mount /system
>adb push busybox /data/local/tmp
>adb shell chmod 755 /data/local/tmp/busybox
>adb shell /data/local/tmp/busybox dd if=/system/framework/telephony-common.odex of=/data/local/tmp/telephony-common.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
(adb dd if...からでもできるかも。ちなみにここは逆コンパイル‐再コンパイル後のファイルに元の「署名」をうつす処理らしいが、必要ないかも。)

>adb shell cd /data/local/tmp; busybox cp telephony-common.odex /system/framework/telephony-common.odex.new
>adb shell mv /system/framework/telephony-common.odex /system/framework/telephony-common.odex.old
>adb shell mv /system/framework/telephony-common.odex.new /system/framework/telephony-common.odex

>adb shell rm /data/local/tmp/busybox
>adb shell rm -rf /data/dalvik-cache

>adb reboot

>rmdir /s /q temp

うまくいかない場合は /system/framework/telephony-common.odex.old より telephony-common.odex を復帰させればよいはず。

これでnexus4にアンテナピクトが立った。問題はこれでバッテリーの減りが遅くなるかどうかだが。


nexus4 セルスタンバイ対策 - 失敗編その2

2013-06-18 17:00:33 | android

【注】これも失敗編です【注】

次に Xposed モジュールを使う方法ってのに取り組んでみた。
javaファイルを見て修正するだけの能力がないので、かいつまんで書くと、 XposedInstaller.apk をダウンロード、インストール。
Xposed用モジュールをダウンロード、インストール。
XposedInstallerを起動するが、インストールしたモジュールがModuleタブに表示されない。
終了。両方アンインストール。

 


nexus ファクトリーイメージの焼き方

2013-06-18 16:26:38 | android

【基本的な方法】

Factory Images for Nexus Devicesよりdeviceにあったtgzファイルをダウンロードし、解凍。deviceのbootloaderを起動しておいてUSB接続。fastboot.exeのあるフォルダにpathがとおっていれば、Winだと "flash-all.bat" を実行すればよいらしい。

 

【お勧めしない方法】

どうも寝ぼけていたらしく、その下のzipファイルを解凍し、4つのimgファイルをそれぞれ焼いた気がする。

>fastboot flash boot boot.img
>fastboot flash recovery recovery.img
>fastboot flash system system.img
>fastboot flash userdata userdata.img

とやったのだろうか。よく覚えていない。eraseしていなんだよな。でもとりあえず動いている。


nexus4 セルスタンバイ対策 - 失敗編その1

2013-06-18 11:44:21 | android

【注】失敗編だからね【注】

root化もしたことだし、実際にセルスタンバイ問題にたちむかってみた。いくつか方法はあるようだが、まずこちら。ほとんど理解できないのだが、どうもパラメータの "config_voice_capable" のbool値を "true" から "false" に書き換える作戦と勝手に解釈。

あくまで Galaxy Nexus かつ 4.2.1 での方法なので、うまくいくかは不明だがあたって砕けろ。で砕けた。

"/system/vendor/overlay/framework/framework-res.apk" のパーミッションを変更して reboot したところ、エラーを知らせるメッセージが延々と出続ける。前出のサイトには
「/data/resource-cache/vendor@overlay@framework@framework-res.apk@idmap のパーミッションが 600 になっていて、読み取り失敗して色々なアプリがクラッシュしまくります。」
とあるのだが、当方には意味不明。これがそのうち終わるのか、全然だめなのか判断できない。CWM入れたのにバックアップ作成していなかったので、googleからファクトリーイメージをダウンロードして焼くことにする。
つづく。


参照
ブローヴちゃん
HOBBYHOUSE.JP