ZenFone3(ZE520KL)のROOT化

ZenFone 3 のroot化

2chのスレッド・xdaの記事・実際にやってみた事のまとめ。

root化すると、保証が一切効かなくなるので、注意が必要です。
日本版のZenFone 3を買う場合は、通常運用を想定していると思います。
結果的に、知人でZenFone3の日本語版を買った方は、みんなroot化することになりました。
カメラのフォーカス音とシャッター音が大きすぎて、シーンによっては使いづらいです。

海外版では、マナーモードと連動で無音になる為、海外仕様のほうが優れています。
安く、スペックの良い、海外仕様を買えばよかった…。
ケースをつけて、容量の大きいmicroSDを買っても、日本版価格と比べるとおつりがきます。
自分で対処できたり、サポートを打ち切ってでも、ユーザビリティを重視する方は海外版がオススメですね。

そこまでAndroidには詳しくないので、間違いが多いかもしれませんが、自分用のメモとして公開します。
各自の判断でご利用ください。基本的にカメラの音量しかカスタマイズしていません。後はノーマルで納得しています。

ZenFone 3 日本語版が起動しなくなった

root化し、自分の思い通りのアプリを入れ、xposed等を入れて遊んでいましたが、ロゴ画面でフリーズするようになりました。
【ROM焼き】ASUS ZenFone 3 root1の情報を参考にしながら、仮説と検証を繰り返し何とか復旧できました。
Androidのroot化は初めてでしたが、様々なアプリや仕様が公開されていて非常に画期的で楽しい文化だなと思いました。
公開されていない部分も、解析することで自分の望む情報を手に入れたりできるようです。

ZenFone 3のroot化は、[GUIDE] How to root zenfone 3 (ZE552KL / ZE520KL)を見て手順通りに行えばできます。
しかしながら、Windows 10で行うと、失敗しやすいみたいです。
Androidと通信を行う、ドライバが正しくインストールできず。
adb devices / fastboot devicesで接続している端末は表示されるが、実際は通信ができないといった状況に遭遇しました。

使っていないWindows 7のノートパソコンがあったので、そちらで作業したらスムーズに復旧と再度のroot化が可能でした。

ZenFone 3 の復旧

通常起動しなくなった端末は、日本版のZE520KL(JP_Phone-13.20.10.77)のroot化済みの端末になります。
Fastbootは起動したため、Asusから純正のROMをもってきて焼いてみることにしました。
しかし、純正の日本版ROM(UL-ASUS_Z017D_1-JP-13.20.10.*-user.zip)を焼く場合は、日本版:recovery.imgが必要になります。
既に、TWRPで置き換えているため、日本版の再インストールはできませんでした。

そこで、海外版(WW)のインストールをしてみることにしました。ありがたいことに、xdaの記事に、WW版のrecovery.imgがバージョンごとにおいてあります。
直接のリンクはこちらになります。WWの13.20.10.137のrecovery.imgをダウンロードし、fastbootをかけて、recoveryをWW版で書き込みました。
recoveryを起動した後は、sideloadを選択し、UL-ASUS_Z017D_1-WW-13.20.10.137-user.zipを読み込み無事に復旧しました。

WiFiの設定や、モバイル設定は残っているようで、IIJmioのSMSのSIMのtype A(au版)はそのまま利用可能でした。
ここから、さらに日本版に戻す場合は、公開されている日本版のROMから、日本版:recovery.imgを作成し、recoveryを日本仕様にしてから、sideloadで読み込むことで、日本版に戻すことが出来ます。

自分の場合は、WW版のほうが、都合が良いのでとりあえず、そのままにしてあります。
recovery.imgの作り方も、後ほどご紹介します。直接解凍を行うので、AsusCamera.apkも手に入れることが出来ます。
日本仕様向けに、完全ミュート仕様や、音源を小さくした仕様を独自に作りインストールすることができます。

その際は、root権限がないと、元々のAsusCameraをアンインストールできないため、インストールする場合もroot化は必須になります。
元々の署名を手に入れることが出来れば、純正のアプリとして上書きインストールもできそうな感じですが、そのあたりは詳しくありません。

ZenFone 3 のroot化の準備と手順

windows 7での作業を推奨します。xdaからmaster.zipをダウンロードしてください。

1.JAVAは何かと必須なので、JDKをインストールしパスを通しておく。

2.ZenFone 3と通信を行うためのドライバをインストールする。[RootZenfone3-masterの0.install_Driver.batに相当] ※ここは不要かも、直接ドライバを指定してインストールする。
→ adb-setup-1.4.3.exeのインストールだけで足りた。

3.ZenFone 3をfastbootで起動する。そして、PCと接続し、正しくドライバがインストールされて、PCとAndroidが通信のできる状態にする。

4.非公式アンロックでブートローダーをアンロックする。[RootZenfone3-masterの1.Unlock_ze520kl.batに相当]
※アンロックするとすべてのアプリが再設定される為、結構時間がかかります。再度ログイン設定が必要なアプリもあったりするので、急ぎの際やパスワード等が確認できない環境ではアンロックしないほうがいいです。

5.アンロック後は、recoveryパーティションに、twrp-3.0.2-Z017D.imgを焼いて、recoveryで起動します。[ RootZenfone3-masterの2.FlashRecovery.batに相当 ]

6.TWRPが起動したら、.supersuを所定の場所に配置し、Sideloadを起動し、SuperSU.zipをインストールする。[ RootZenfone3-masterの3.GetRoot.batに相当 ]

*.batのファイルはwindows向けのバッチファイルで、コマンドプロンプトで利用するコマンドが一覧で記述されています。
コマンドを正確に実行する必要がある為、Cドライブの直下に、C:\Zenのようなフォルダを作成し、その中で作業することをおすすめします。
最新のRootZenfone3-masterの中には、Dos.batが入っていて、単純にcmdと書かれたファイルですが、便利です。

adb-setup-1.4.3.exeを実行し、全てYでインストールする。
Dos.batをダブルクリックして、コマンドプロンプトを起動します。
java -version  [ javaがインストールされているかの確認:バージョンが表示されなければインストール設定がうまくいっていません ]

 [ ZenFone3のボリュームキーの上を押しながら再起動し、fastbootする。 ケーブルをパソコンとつなぐ]
 [ 端末が表示されることを確認する ]
fastboot devices  
fastboot flash all unlock_ze520kl.raw
fastboot reboot-bootloader
fastboot oem unlock-go
 [ ブートローダのアンロック完了 ]
fastboot oem device-info

 [ TWRPを焼く]
fastboot flash recovery twrp-3.0.2-Z017D.img 
 [TWRPを起動]
fastboot reboot recovery

adb push dot.supersu /data/.supersu
 [ sideloadを実行する。(Advanced – ADB Sideload – Wipe Cache – Swipe to Start Sideload)]
 [ SuperSUのインストール ]
adb sideload SuperSU.zip

ROOT化のその後 日本版(JP)

AsusCamera.apkを、編集(フォーカス音量)しインストールできるようにする。標準のカメラアプリが単純にアンインストールできなかったりする。(要検証)
ごちゃごちゃいじっているうちにアンインストールできて、自分で署名したカメラアプリをインストールできる。

1.シャッター音を消す。
下記のファイルをリネーム or 無音ファイルで上書きする。
/system/media/audio/ui/camera_click.ogg 

2.フォーカス音を消す。
自分で音を変更した、AsusCamera.apkを作成し、下記のファイルと差し替える。権限は644に変更すると良いみたい。
/system/priv-app/AsusCamera/AsusCamera.apk
差し替えた後に、設定→アプリ→カメラで、いったん無効にしてから有効で強制インストールされる。(この辺りはもうちょい試したいところ)

2件ZenFone3をルート化し、無音AsusCameraを入れ替えたけれど、アンインストールできるタイミングはわからなかった。
Androidそのものの仕組みを深く理解するとできるのかもしれない。

■ 何度か、検証し、カメラを利用していない状態で(ROM焼き直後)
オリジナルのAsusCamera.apkの名前を変更し、無音バージョンの、apkをAsusCamera.apkという名前で、/system/priv-app/AsusCamera/に設置。
権限を644に変更し、設定 → アプリ → カメラ → 無効をタップ → 有効をタップでインストールできた。

ROOT化のその後 海外版(WW)

マナーモードで足りれば、そのままでOK。
全面的に音を消す場合は、JP版と同様の処置を行う。

recovery.img作成

Auto Tool Unpack Repack .DAT & .IMG For Windows v2.0

上記ツールをダウンロードする、対象のROMをダウンロードする。
Pythonも必要なので、ダウンロードし、インストールしてください。バージョンは最新のを利用しました。(3.5.2)
WW版は、海外サイトに、全て揃っているので、ここでは77_JPと137_JPのリカバリーを作成します。

対象ファイル
UL-ASUS_Z017D_1-JP-13.20.10.77-user.zip
UL-ASUS_Z017D_1-JP-13.20.10.137-user.zip

解凍したファイルで、キーとなるファイル
boot.img / このまま利用します。
system.new.dat / Unpack時に必要
system.transfer.list / Unpack時に必要

system.*のファイルを、input-DATにいれて、ツールから、1) Input DAT For Unpackを実行します。
完了すると、Unpack-DATフォルダが生成されるので、フォルダ名をわかりやすくROMのバージョンに変更します。(Unpack-DAT_77JPとか)

今回は、Unpack-DAT_77JPとUnpack-DAT_137JPを作成しました。
それぞれのフォルダの中から下記のファイルを探します。
\system.dat_\recovery-from-boot.p
\system.dat_\etc\recovery-resource.dat
\system.dat_\bin\install-recovery.sh

77JPのinstall-recovery.shの中身を見ると、recoveryの生成コマンドがでています。
77用に加工すると、

applypatch -b recovery-resource.dat boot.img recovery.img 788a8680349be95694c8d1331fea098961d3a4dc 19084540 a64c74579b0423e91704db976465457a363569f7:recovery-from-boot.p 

137JPのinstall-recovery.shの中身を見ると、recoveryの生成コマンドがでています。
137用に加工すると、

applypatch -b recovery-resource.dat boot.img recovery.img ca057947be2b4d17d12593a93e05547e30cc989c 19088636 a7c3b986ad48023fe3939d382ef20dc7f7a3444e:recovery-from-boot.p

厳密にいうと上記のコマンドではエラーが出ているらしいです。問題なく利用はできるので、エラーを追っていくだけの知識がないため保留にします。
ROOTを取得できるAndroid端末に対して、下記のコマンドを実行し、recovery.imgを作成します。

adb push boot.img /data/local/tmp
adb push recovery-from-boot.p /data/local/tmp
adb push recovery-resource.dat /data/local/tmp
adb shell
cd /data/local/tmp
su
バージョンごとのコマンド(applypatch -b ~)
exit
exit
adb pull /data/local/tmp/recovery.img

137JPでrecoveryを作ると、WW版になってしまう…。
77JPは日本版として普通にできた。リソースがごっちゃになったかな。

WW137状態で、JP137のリソースそろえても、WW137版のリカバリーができた、
WW137状態で、JP77のリソースをそろえたら、JP77版リカバリーができた。
JP137状態で、JP137のリソースをそろえたら、JP137版リカバリーができた。

今回はJP77版のリカバリーから、JP137のROMを焼きました。

adbでうまく、pushできてなかったりしたのか、よくわからない。
applypatchの動作の仕様に詳しいともう少し、問題の切り分けができるかもしれない。

WW版に再度戻して検証する気力がない。作業の工程でリソースを区別してるつもりが、一緒のを使ってしまっている可能性もある。
検証そのものが間違っている可能性もあるし、何とも言えないところ。
ROM焼きに時間がかかるので、端末が二台あれば検証も用意だけど、そこまで費用をかけてもいられないので保留。

日本語版のリカバリーイメージはこちらにもあるようです。

AsusCamera.apkの編集

■ JDKを使い自己証明書を作成し、apktoolでデコードとビルドを行う。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Java SE Development Kit 8u111 (JDK)
今回は32bitを使いました。
set PATH=%PATH%;C:\Program Files (x86)\Java\jdk1.8.0_111\bin

https://bitbucket.org/iBotPeaches/apktool/downloads
最新のapktoolをダウンロードする。
今回はapktool_2.2.1.jarを使います。

apktool_2.2.1.jarはわかりやすく、apktool.jarに名前を変更しました。
cmdを起動し、一時的にpathにjdkのbinを追加します。
set PATH=%PATH%;C:\Program Files (x86)\Java\jdk1.8.0_111\bin

■ apkファイルをデコードする。
java -jar apktool.jar d AsusCamera.apk

■ 無音化のカスタマイズ
AsusCamera/original/META-INFを削除 (既存の署名ファイル)
AsusCamera/res/raw/camera_focus.oggを無音のファイルに差し替える or 名前を変える
burst系の音も不要であれば、無音化する。

■ デバッグ用の署名を作成する
keytool -genkeypair -alias androiddebugkey -keypass password -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 10950 -dname “CN=Android Debug,O=Android,C=US” -keystore password.keystore -storepass password

■ 作成した署名の確認
keytool -list -v -keystore password.keystore -storepass password

■ カスタマイズした構成で、ビルドする。
java -jar apktool.jar b -c AsusCamera -o AsusCameraCustom.apk

■ 出来上がったapkファイルに署名をする。
jarsigner -sigalg SHA256withRSA -tsa http://timestamp.digicert.com -keystore password.keystore -storepass password -verbose AsusCameraCustom.apk androiddebugkey

■ 署名がされているか確認する。
jarsigner -verify -verbose -certs AsusCameraCustom.apk

結論

個人的なニーズを満たそうとすると、サポートがどのみち効かなくなるので海外版がオススメ!
日本版は買ったら、保証の観点からもそのままが良いと思いますが、
道具として本来あるべき姿としてはrootを取って使いやすくカスタマイズするべきだと思います。
そもそも、root化すると保証が効かなくなるというのが考えものですね。

各会社によって、保証内容をよく見る必要がありそうですが、root化したことによって壊れたら、当然保証なしで構わないと思いますが。
それ以外であれば、ケースバイケースで保証適応してくれてもよいのにな。
保証条件の適応外の一番初めの、(a)に ASUS以外またはASUS非公認の第三者が製品に修理・変更・改ざんを加えた場合。
この条件があると有償修理になりますね!あとはメーカーさんの姿勢次第といったところでしょうか。

メモ

■ ROMのsystem.new.dat / system.transfer.list を、Auto Tool Unpack Repack .DAT & .IMG For Windows v2.0で抽出する。

Unpack-DAT\system.dat_\recovery-from-boot.p
Unpack-DAT\system.dat_\etc\recovery-resource.dat
Unpack-DAT\system.dat_\bin\install-recovery.sh
+ そのバージョンのboot.img

■ priv-app

Unpack-DAT\system.dat_\priv-app\AsusCamera\AsusCamera.apk
/res/raw/*.ogg を 無音もしくは、音量を下げたものに差し替える。
再構築して、署名をつけて戻す。

137_WWと137_JPのAsusCamera.apkは同じもの。
(MD5)806855D51BCFD717CA5D99CB0E3CF620
(SHA-1)E23D3F41A6E42582C7ACAA33F71DBCA94EC139E2

■ シャッター音そのものの位置

/system/media/audio/ui/camera_click.ogg
他にも、フォーカス音のファイルなどありますが、アプリ管理なのでここでの変更は無意味(バージョンの変化で変わる可能性もあります)です。
root化した端末から、ファイル名を変更して無音に。

■ 137(WW)で、IIJmioのtype A(SMSのみ)のは利用可能

■ root化する時のコマンド一覧 [作業用] ZE520KL – 必要なアプリとデータはノートパソコンに入れておく

fastboot devices
fastboot flash all unlock_ze520kl.raw
fastboot reboot-bootloader
fastboot oem unlock-go
fastboot flash recovery twrp-3.0.2-Z017D.img
fastboot reboot recovery
adb push dot.supersu /data/.supersu
adb sideload SuperSU.zip

■ 対応バンド

https://www.asus.com/Phone/ZenFone-3-ZE520KL/specifications/

BAND No WW ID/IN/TH TW/JP/HK/SG/PH BR   docomo au SoftBank
WCDMA 1    
WCDMA 2          
WCDMA 4              
WCDMA 5        
WCDMA 6            
WCDMA 8      
WCDMA 11              
WCDMA 19            
                   
FDD 1  
FDD 2          
FDD 3      
FDD 4              
FDD 5        
FDD 7          
FDD 8      
FDD 11              
FDD 17              
FDD 18            
FDD 19            
FDD 20              
FDD 21              
FDD 26            
FDD 28        
                   
TD 38              
TD 39              
TD 40            
TD 41              

こうしてみてみると、WW版は通信を考えるとお勧めできない。
端末の速度の面でも、下記の記述から、日本利用を考えた場合は、WWは除外したほうがいい。
LTE Cat4:UL 50 / DL 150 Mbps (WW version)
LTE Cat6:UL 50 / DL 300 Mbps (TW/JP/HK/SG/PH version)

TW・HKのメモリ4GB / ストーレジ64GBがお勧め。

SNSでもご購読できます。

コメント

  1. ジャジャン より:

    はじめまして、自分もroot化で遊んでいたら文鎮化してしまい
    検索していたらこちらを見つけWWの13.20.10.137のrecovery.imgとZIPで動くようになりました。助かりました、ありがとうございました。

    1. chikaru eact より:

      復旧出来て何よりです。

  2. そのだ より:

    リスク承知でお尋ねしたいのですが、ze552klのルート化→jprom焼きまでを詳しく教えて頂けないでしょうか?

    1. chikaru eact より:

      ZE552KLの日本語版が存在しないため、JPROMが焼けません。
      ブートローダのアンロックとROO化、WW版の復旧の手順を記しました。
      ご確認ください。
      https://www.e-act.net/2016/zenfone3-ze552kl-root/

  3. さくら より:

    WW番をJP化してROOTも取れたのですがフォーカス音の無音化が上手く
    出来ません。

    Z017D_JP_13.20.10.77 で日本語化しています。

    1.シャッター音を消す。
    下記のファイルをリネーム or 無音ファイルで上書きする。
    /system/media/audio/ui/camera_click.ogg

    2.フォーカス音を消す。
    自分で音を変更した、AsusCamera.apkを作成し、下記のファイルと差し替える。権限は644に変更すると良いみたい。
    /system/priv-app/AsusCamera/AsusCamera.apk

    1.は出来たのですが
    2.をするのですが上手く消せません。

    どうかご指導お願い致します

  4. chikaru eact より:

    コメントありがとうございます。

    作成されたapkはクリックでインストール可能な状態でしょうか?
    jarsignerで署名し、署名が正しく入っていることは確認できますか?

    最近やっとAndroidがつかめてきまして、priv-app以下にあるapkは差し替え後に、
    再起動で自動インストールされます。
    わかりやすくする場合は、元のデータはフォルダごと削除し、自分の好きなフォルダを作成し、署名の通ったapkを設置し、再起動すればOKです。
    AsusCameraの場合は、/system/app/以下でも駄目で、手動インストール(/data/app/)でもアプリ起動時にエラー表示がでます。(SDカード切替等が使えなかったりする)

    あくまでも、/system/priv-app/でのインストールを想定しているようです。
    よろしくお願いします。

コメントを残す