(失敗) Redmi Note 3 Pro MIUI7に日本語リソースを追加したい

しばらく触っていなかったApktool。最新版のApktoolを使えばWindowsでもMIUIの日本語化ができるようになっているようです。
Redmi Note 3 ProのMIUI8の前にMIUI7 V7.2.5.0(Android 5.1.1ベース)日本語化に挑戦してみた。


いつものようにframework-res.apkとSettings.apkに日本語リソースを追加。
日本語リソースは以前のものを使いまわし。
試した環境

windows10 64bit

Java SE Development Kit 8u101(jdk-8u101-windows-x64)インストール済み
android-sdkインストール済み

作業用フォルダ構成
apktool━━━7za.exe
              ┣━apktool_2.1.1.jar
              ┣━oat2dex.jar (v0.86)
              ┣━framework (取得)
              ┗━apkファイル等 (取得)

以下のコマンドで必要なファイルを取得します。

adb pull /system/framework
adb pull /system/app/miui/miui.apk
adb pull /system/app/miui/arm64/miui.odex
adb pull /system/app/miuisystem/miuisystem.apk
adb pull /system/app/miuisystem/arm64/miuisystem.odex
adb pull /system/priv-app/Settings/Settings.apk
adb pull /system/priv-app/Settings/arm64/Settings.odex

(不要?)deodex化

odex化されていたので必要なファイルのみdeodex化

java -jar oat2dex.jar boot framework/arm64/boot.oat

java -jar oat2dex.jar miui.odex framework/arm64/odex
rename miui.dex classes.dex
7za.exe u -tzip -mx=0 miui.apk classes.dex
del classes.dex

java -jar oat2dex.jar miuisystem.odex framework/arm64/odex
rename miuisystem.dex classes.dex
7za.exe u -tzip -mx=0 miuisystem.apk classes.dex
del classes.dex

java -jar oat2dex.jar Settings.odex framework/arm64/odex
rename Settings.dex classes.dex
7za.exe u -tzip -mx=0 Settings.apk classes.dex
del classes.dex

Apktoolで展開-再構築

必要なフレームワークのインストール

java -jar apktool_2.1.1.jar if framework/framework-res.apk
java -jar apktool_2.1.1.jar if framework/framework-ext-res/framework-ext-res.apk
java -jar apktool_2.1.1.jar if miui.apk
java -jar apktool_2.1.1.jar if miuisystem.apk
framework-res.apkは何事も無く展開-再構築できました。
java -jar apktool_2.1.1.jar d framework/framework-res.apk
java -jar apktool_2.1.1.jar b -c framework-res -o framework-res.new.apk

Settings.apkの再構築が上手くいかない…

Settings.apkの展開はOK、再構築で詰まる。。。

java -jar apktool_2.1.1.jar d Settings.apk
java -jar apktool_2.1.1.jar b -c Settings -o Settings.new.apk
以下の様なエラーが大量。
Settings\res\menu\wifi_setup.xml:4: error: Error: No resource found that matches the given name (at 'title' with value '@string/wifi_setup_wps').
apktool.ymlを修正してとりあえず再構築されるようになりました。(参考:MI-Global/MIUI.v8.Resources.Fixes)
一部抜粋
packageInfo:
  forcedPackageId: '7'

usesFramework:
  ids:
  - 1
  - 16
  - 17
packageInfo:
  forcedPackageId: '127'

usesFramework:
  ids:
  - 1
  - 16
  - 17
  - 18
しかし、インストールしても動かない…(´・ω・`)
DDMSログ
02-10 22:44:10.959: W/PackageManager(9069): Failure retrieving xml 0x7060035 in package com.android.settings
02-10 22:44:10.959: W/PackageManager(9069): android.content.res.Resources$NotFoundException: Resource ID #0x7060035
02-10 22:44:10.959: W/PackageManager(9069):  at android.content.res.Resources.getValue(Resources.java:1280)
02-10 22:44:10.959: W/PackageManager(9069):  at android.content.res.MiuiResources.getValue(MiuiResources.java:145)
02-10 22:44:10.959: W/PackageManager(9069):  at android.content.res.Resources.loadXmlResourceParser(Resources.java:2695)
02-10 22:44:10.959: W/PackageManager(9069):  at android.content.res.Resources.getXml(Resources.java:1145)
02-10 22:44:10.959: W/PackageManager(9069):  at android.app.ApplicationPackageManager.getXml(ApplicationPackageManager.java:1182)
02-10 22:44:10.959: W/PackageManager(9069):  at android.content.pm.PackageItemInfo.loadXmlMetaData(PackageItemInfo.java:289)
02-10 22:44:10.959: W/PackageManager(9069):  at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:560)
02-10 22:44:10.959: W/PackageManager(9069):  at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:534)
02-10 22:44:10.959: W/PackageManager(9069):  at android.support.v4.content.FileProvider.attachInfo(FileProvider.java:352)
02-10 22:44:10.959: W/PackageManager(9069):  at android.app.ActivityThread.installProvider(ActivityThread.java:5012)
02-10 22:44:10.959: W/PackageManager(9069):  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4607)
02-10 22:44:10.959: W/PackageManager(9069):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4547)
02-10 22:44:10.959: W/PackageManager(9069):  at android.app.ActivityThread.access$1500(ActivityThread.java:154)
02-10 22:44:10.959: W/PackageManager(9069):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369)
02-10 22:44:10.959: W/PackageManager(9069):  at android.os.Handler.dispatchMessage(Handler.java:102)
02-10 22:44:10.959: W/PackageManager(9069):  at android.os.Looper.loop(Looper.java:135)
02-10 22:44:10.959: W/PackageManager(9069):  at android.app.ActivityThread.main(ActivityThread.java:5273)
02-10 22:44:10.959: W/PackageManager(9069):  at java.lang.reflect.Method.invoke(Native Method)
02-10 22:44:10.959: W/PackageManager(9069):  at java.lang.reflect.Method.invoke(Method.java:372)
02-10 22:44:10.959: W/PackageManager(9069):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
02-10 22:44:10.959: W/PackageManager(9069):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
02-10 22:44:10.969: D/AndroidRuntime(9069): Shutting down VM
02-10 22:44:10.969: E/AndroidRuntime(9069): FATAL EXCEPTION: main
02-10 22:44:10.969: E/AndroidRuntime(9069): Process: com.android.settings, PID: 9069
02-10 22:44:10.969: E/AndroidRuntime(9069): java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.IllegalArgumentException: Missing android.support.FILE_PROVIDER_PATHS meta-data
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.app.ActivityThread.installProvider(ActivityThread.java:5015)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4607)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4547)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.app.ActivityThread.access$1500(ActivityThread.java:154)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.os.Handler.dispatchMessage(Handler.java:102)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.os.Looper.loop(Looper.java:135)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.app.ActivityThread.main(ActivityThread.java:5273)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at java.lang.reflect.Method.invoke(Native Method)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at java.lang.reflect.Method.invoke(Method.java:372)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
02-10 22:44:10.969: E/AndroidRuntime(9069): Caused by: java.lang.IllegalArgumentException: Missing android.support.FILE_PROVIDER_PATHS meta-data
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:563)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:534)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.support.v4.content.FileProvider.attachInfo(FileProvider.java:352)
02-10 22:44:10.969: E/AndroidRuntime(9069):  at android.app.ActivityThread.installProvider(ActivityThread.java:5012)
02-10 22:44:10.969: E/AndroidRuntime(9069):  ... 11 more
フレームワークが足りない?mediatek-res.apkのようなQualcomm向けのフレームワークみたいなものがあるのかな?
無事ビルドできる人教えて下さいm(_ _)m


続・MIUI8に日本語リソースを追加できたよ



0 件のコメント :