※やっていることは、ななしのブログさんの追っかけです(^^;;;
プラットフォームはなんにしろ、作業環境を整えるです。
※ただし、なぜそうする必要があるかまでは分かっていません。あくまでも手順のみです。
素朴な疑問[JDK付属JREとJREの違い]
プラットフォームはなんにしろ、作業環境を整えるです。
※ただし、なぜそうする必要があるかまでは分かっていません。あくまでも手順のみです。
必要なものがあって、パスが通っていればだいたい完了ですね。
作業的には、Linuxでやったほうが、仕事の流れがよくわかります。
windowsでも問題なくできると思います。
JDKにパスを通すのではなく、JREにパスを通さないと作業できないことがそもそもの引っかかりでした
(初心者ですね)
素朴な疑問[JDK付属JREとJREの違い]
export JAVA_HOME=/usr/java/default
export JRE_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
exportCLASSPATH=.:$JAVA_HOME/jre1.7.0_51/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export JRE_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
exportCLASSPATH=.:$JAVA_HOME/jre1.7.0_51/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
作業フォルダは
/deodex-z1
他の環境の場合はすべて置き換えてください。
JapaneseIME.apk
JapaneseIME.odex
・deodex
baksmali -d system/framework -x JapaneseIME.odex -o test
smali -a 19 test -o classes.dex
7za a -tzip -mx0 JapaneseIME.apk classes.dex
元の apk に無圧縮で戻す
・本体展開smali -a 19 test -o classes.dex
7za a -tzip -mx0 JapaneseIME.apk classes.dex
元の apk に無圧縮で戻す
framework-res.apkとSemcGenericUxpRes.apkを同一フォルダに入れる。
apktool if framework-res.apk
apktool if SemcGenericUxpRes.apk…これらは、一度生成されれば、後は必要ないです。
※apktoolのインストール先フォルダ内のframeworkフォルダに1.apkと2.apkができます。
apktool d JapaneseIME.apk
7za x -tzip JapaneseIME.apk resources.arsc
作業フォルダにこんな感じで、testフォルダ、JapaneseIMEフォルダ、classes.dex、resources.arscが生成されてJapaneseIMEフォルダ内にまとめられますのでそれ以外は不要になります。
※この時点でtestフォルダは削除してもいいです。
これからの作業は、全て「JapaneseIME/smali/com/sonyericsson/android/poboxにて行います。
・なんたらチェック
Ljava/lang/String;->startsWith(Ljava/lang/String;)Z にて検索
com/sonyericsson/android/pobox/core/IWnnLanguageSwitcher.smali…574行
com/sonyericsson/android/pobox/core/OpenWnn.smali…497行
com/sonyericsson/android/pobox/settings/ControlPanelJaJp.smali…270行
・リソース参照 0x206で検索→最後の引き数にv**を合わせる const/16 v6, 0xffffffff
(※環境により引数も変わるかは不明)
com/sonyericsson/android/pobox/core/IWnnImeJaJp.smali・・・20534~20542行、20878~20886行
const/16 v4, 0xffffffff
const/16 v6, 0xffffffff
com/sonyericsson/android/pobox/settings/SeekBarDialogPreference.smali・・・185~193行、211~219行
const/16 v2, 0xffffffff
const/16 v2, 0xffffffff
com/sonyericsson/android/pobox/setupwizard/SetupWizardKeyReactionPage.smali・・・353~357行
const/16 v7, 0xffffffff
com/sonyericsson/android/pobox/skin/SkinData.smali・・・1687~1691行、1890~1894行、5152~5158行、5213~5219行
const/16 v14, 0xffffffff
const/16 v14, 0xffffffff
const/16 v0, 0xffffffff
const/16 v0, 0xffffffff
※事前に作業するsmaliの当たりをつける(なんたらチェックをする前にやるみたいですね)
TypoTypoTypo! POBox 5.4をXperia以外の端末でも動くようにする。(root不要)
でのやり方ですかね。下記はwindows上で作業しています。
※ここからは、Linux上での作業に戻ります。
・apktool.yml編集
sdkInfo:
minSdkVersion: '19'
targetSdkVersion: '19'
を
sdkInfo:
minSdkVersion: '16'
targetSdkVersion: '19'
作業後、固める
apktool b JapaneseIME test.apk
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す
・再署名…なにを入力するかは、調べておいてください。
keytool -genkey -v -sigalg SHA1withRSA -keyalg RSA -keystore test.keystore -alias testkey -validity 10000
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -verbose test.apk testkey
・最適化
zipalign -v 4 test.apk JapaneseIME.apk
ここで、test.apkは不要になります。
※下記内容については、同じフォルダーが生成されることになるので
上記作業完了時に、移動ないしは、削除したほうがよいです。
※ただし、test.keystoreは削除しないように。
POBoxSknSelector.apk
POBoxSknSelector.odex
※同じ事の繰り返しですね。
・deodex
baksmali -d system/framework -x POBoxSknSelector.odex -o test
smali -a 19 test -o classes.dex
7za a -tzip -mx0 POBoxSknSelector.apk classes.dex
元の apk に無圧縮で戻す
・本体展開
apktool d POBoxSknSelector.apk
7za x -tzip POBoxSknSelector.apk resources.arsc
sdkInfo:
minSdkVersion: '16'
targetSdkVersion: '19'
・固める
apktool b POBoxSknSelector test.apk
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す
・再署名
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -verbose test.apk testkey
・最適化
zipalign -v 4 test.apk POBoxSknSelector.apk
baksmali -d system/framework -x POBoxSknSelector.odex -o test
smali -a 19 test -o classes.dex
7za a -tzip -mx0 POBoxSknSelector.apk classes.dex
元の apk に無圧縮で戻す
・本体展開
apktool d POBoxSknSelector.apk
7za x -tzip POBoxSknSelector.apk resources.arsc
sdkInfo:
minSdkVersion: '16'
targetSdkVersion: '19'
・固める
apktool b POBoxSknSelector test.apk
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す
・再署名
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -verbose test.apk testkey
・最適化
zipalign -v 4 test.apk POBoxSknSelector.apk
POBoxSknMono.odex
・deodex
baksmali -d system/framework -x POBoxSknMono.odex -o test
smali -a 19 test -o classes.dex
7za a -tzip -mx0 POBoxSknMono.apk classes.dex
元の apk に無圧縮で戻す
・本体展開
apktool d POBoxSknMono.apk
7za x -tzip POBoxSknMono.apk resources.arsc
sdkInfo:
minSdkVersion: '14'
targetSdkVersion: '17'
・固める
apktool b POBoxSknMono test.apk
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す
・再署名
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -verbose test.apk testkey
・最適化
zipalign -v 4 test.apk POBoxSknMono.apk
baksmali -d system/framework -x POBoxSknMono.odex -o test
smali -a 19 test -o classes.dex
7za a -tzip -mx0 POBoxSknMono.apk classes.dex
元の apk に無圧縮で戻す
・本体展開
apktool d POBoxSknMono.apk
7za x -tzip POBoxSknMono.apk resources.arsc
sdkInfo:
minSdkVersion: '14'
targetSdkVersion: '17'
・固める
apktool b POBoxSknMono test.apk
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す
・再署名
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -verbose test.apk testkey
・最適化
zipalign -v 4 test.apk POBoxSknMono.apk
※以上で
JapaneseIME.apk
POBoxSknSelector.apk
POBoxSknMono.apk
が生成されますので、これらを、zipファイルに戻します。
私は、自力で作成できないので、POBox_Touch_6.3.A.0.8.zipを加工しなおして対応しました。
POBox_Touch_6.3.A.0.8.zip/META-INF/com/google/android/updater-script
を自分用に少し加工する程度です。ほとんどいじりません。
POBox_Touch_6.3.A.0.8.zip/system/lib/
にあるファイルについては、ftfファイルから生成したものをそのままいれればokです。
あくまでも自己責任で(笑)
(5/5追記)ななしのブログさん
updater-script -ちょっとした疑問-
解説があります。分かり易いですね。
(5/6追記)2chよりGXスレ←多分rayでも動くかな?
https://www.mediafire.com/?ywk751yye6puox4