JDK 1.7.0_75
apktool-2.0.0rc4.jar
Cygwin
XPERIA Z1 compact D5503 14.5.A.0.242から
/system/app/JapaneseIME
/system/app/POBoxSknMono
/system/app/POBoxSknSelector
/system/framework
/system/lib/libなんたら.so
1.frameworkリソースインストール
$ apktool if framework-res.apk
$ apktool if SemcGenericUxpRes.apk
2.apkデコンパイル
$ apktool d JapaneseIME.apk -o pobox
$ apktool d POBoxSknSelector.apk -o sel
$ 7z x -tzip JapaneseIME.apk resources.arsc
3.APIレベル書き換え
pobox/apktool.yml
version: 2.0.0-RC4
apkFileName: JapaneseIME.apk
isFrameworkApk: false
usesFramework:
ids:
- 1
- 2
sdkInfo:
- minSdkVersion: '21'
+ minSdkVersion: '16'
targetSdkVersion: '21'
packageInfo:
forced-package-id: '127'
versionInfo:
versionCode: '12984323'
versionName: 6.3.1.A.0.3
compressionType: false
sel/apktool.yml
version: 2.0.0-RC4
apkFileName: POBoxSknSelector.apk
isFrameworkApk: false
usesFramework:
ids:
- 1
sdkInfo:
- minSdkVersion: '17'
+ minSdkVersion: '16'
targetSdkVersion: '19'
packageInfo:
forced-package-id: '127'
versionInfo:
versionCode: '12976129'
versionName: 6.3.A.0.1
compressionType: false
unknownFiles:
semcbuild-command.txt: '8'
4.フォルダリネーム
pobox/res
version: 2.0.0-RC4
drawable-land-xhdpi → drawable-land-xhdpi-v4
drawable-sw540dp-land-xhdpi → drawable-sw540dp-land-xhdpi-v13
drawable-sw540dp-xhdpi → drawable-sw540dp-xhdpi-v13
drawable-sw600dp → drawable-sw600dp-v13
drawable-xhdpi → drawable-xhdpi-v4
layout-sw600dp → layout-sw600dp-v13
xml-sw600dp → xml-sw600dp-v13
5.なんたらチェック回避
com/sonyericsson/android/pobox/core/IWnnLanguageSwitcher.smali 574行
.line 325
:goto_0
sget-object v3, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
.line 1331
.local v3, "manufacturer":Ljava/lang/String;
if-eqz v2, :cond_0
- invoke-virtual {v3, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+ invoke-virtual {v2, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v7
com/sonyericsson/android/pobox/core/OpenWnn.smali 497行
.line 1330
:goto_0
sget-object v3, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
.line 1331
.local v3, "manufacturer":Ljava/lang/String;
if-eqz v2, :cond_0
- invoke-virtual {v3, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+ invoke-virtual {v2, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v7
com/sonyericsson/android/pobox/settings/ControlPanelJaJp.smali 270行
.line 93
:goto_0
sget-object v3, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
.line 94
.local v3, "manufacturer":Ljava/lang/String;
if-eqz v2, :cond_1
- invoke-virtual {v3, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+ invoke-virtual {v2, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v10
6.五十音キーボード有効化
com/sonyericsson/android/pobox/config/POBoxConfig.smali 418行
.line 130
.local v0, "enable":Z
sget-object v1, Lcom/sonyericsson/android/pobox/config/POBoxConfig;->mPref:Lcom/sonyericsson/android/pobox/preferences/POBoxPreference;
const/4 v2, 0x1
- invoke-virtual {v1, v0, v2}, Lcom/sonyericsson/android/pobox/preferences/POBoxPreference;->setEnableHandwritingFading(ZZ)V
+ invoke-virtual {v1, v2, v2}, Lcom/sonyericsson/android/pobox/preferences/POBoxPreference;->setEnableHandwritingFading(ZZ)V
7.リソース参照回避
com/sonyericsson/android/pobox/core/IWnnImeJaJp.smali 20539~20547行
.line 1209
.local v1, "diff":I
- invoke-virtual {p0}, Lcom/sonyericsson/android/pobox/core/IWnnImeJaJp;->getResources()Landroid/content/res/Resources;
-
- move-result-object v6
-
- const/high16 v7, 0x2060000
-
- invoke-virtual {v6, v7}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v6
+ const/16 v6, 0xffffffff
com/sonyericsson/android/pobox/core/IWnnImeJaJp.smali 20883~20891行
.line 839
invoke-static {}, Lcom/sonyericsson/android/pobox/status/SkinStatusManager;->getInstance()Lcom/sonyericsson/android/pobox/status/SkinStatusManager;
move-result-object v3
- invoke-virtual {p0}, Lcom/sonyericsson/android/pobox/core/IWnnImeJaJp;->getResources()Landroid/content/res/Resources;
-
- move-result-object v4
-
- const/high16 v5, 0x2060000
-
- invoke-virtual {v4, v5}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v4
+ const/16 v4, 0xffffffff
com/sonyericsson/android/pobox/settings/SeekBarDialogPreference.smali 185~193行
- invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
-
- move-result-object v2
-
- const v3, 0x2060003
-
- invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v2
+ const/16 v2, 0xffffffff
com/sonyericsson/android/pobox/settings/SeekBarDialogPreference.smali 211~219行
- invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
-
- move-result-object v2
-
- const v3, 0x2060002
-
- invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v2
+ const/16 v2, 0xffffffff
com/sonyericsson/android/pobox/setupwizard/SetupWizardKeyReactionPage.smali 353~357行
.line 154
.local v2, "drawable":Landroid/graphics/drawable/Drawable;
- const v7, 0x2060003
-
- invoke-virtual {v5, v7}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v7
+ const/16 v7, 0xffffffff
com/sonyericsson/android/pobox/skin/SkinData.smali 1687~1691行
.line 998
- const/high16 v2, 0x2060000
-
- invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v0
+ const/16 v0, 0xffffffff
com/sonyericsson/android/pobox/skin/SkinData.smali 1890~1894行
.line 979
- const/high16 v2, 0x2060000
-
- invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v0
+ const/16 v0, 0xffffffff
com/sonyericsson/android/pobox/skin/SkinData.smali 5152~5158行
.line 750
- const/high16 v3, 0x2060000
-
- move-object/from16 v0, p1
-
- invoke-virtual {v0, v3}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v14
+ const/16 v14, 0xffffffff
com/sonyericsson/android/pobox/skin/SkinData.smali 5213~5219行
.line 758
- const/high16 v3, 0x2060000
-
- move-object/from16 v0, p1
-
- invoke-virtual {v0, v3}, Landroid/content/res/Resources;->getColor(I)I
-
- move-result v14
+ const/16 v14, 0xffffffff
8.apkコンパイル
$ apktool b pobox -o pobox.apk
$ apktool b sel -o sel.apk
$ 7z a -tzip -mx=0 pobox.apk resources.arsc
9.再署名
POBoxSknMono.apk → mono.apkにリネーム
$ 7z d -tzip mono.apk META-INF
$ jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore nuko.keystore -tsa http://timestamp.globalsign.com/scripts/timstamp.dll -verbose pobox.apk nukokey
$ jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore nuko.keystore -tsa http://timestamp.globalsign.com/scripts/timstamp.dll -verbose mono.apk nukokey
$ jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore nuko.keystore -tsa http://timestamp.globalsign.com/scripts/timstamp.dll -verbose sel.apk nukokey
自分が生成したとわかりやすくしているので変な名称
$ keytool -genkey -v -sigalg SHA1withRSA -keyalg RSA -keystore nuko.keystore -alias nukokey -validity 10000
一般的なの?
$ keytool -genkey -v -sigalg SHA1withRSA -keyalg RSA -keystore test.keystore -alias testkey -validity 10000
10.zipalign
$ zipalign -v 4 pobox.apk JapaneseIME.apk
$ zipalign -v 4 mono.apk POBoxSknMono.apk
$ zipalign -v 4 sel.apk POBoxSknSelector.apk
※4は合ってもなくてもどちらでも
$ rm pobox.apk mono.apk sel.apk
0 件のコメント:
コメントを投稿