這個程式是我在中文化Vignette的時候想到的,目的是將所有的smali檔案中的常數字串抓出來
統一放在一個文字檔中,之後就直接翻譯該文字檔,翻完後可再利用該程式將翻譯檔寫回smali檔
然後就可以用DoAPK去產生apk檔~~
apk的中文化大概有三個地方
1.xml檔 - 這可以直接改
2.smali檔 - 這是反編譯之後產生的檔案
3.圖檔 - 這得用PhotoShop之類的工具來改
這裡針對的是smali檔的修改
第一步,先用DoAPK將apk檔反編譯
apk檔案位置:d:\temp\Vignette\Vignette v2011.03.16.6.apk
反編譯存放目錄:d:\temp\Vignette
反編譯成功後會產生 d:\temp\Vignette\vignet~1.apk.decode\
第二步,改動 SmaliToolsV1.3.jar,使用下指命
start javaw -Dfile.encoding=utf-8 -jar SmaliToolsV1.3.jar
smali檔的位置:d:\temp\Vignette\vignet~1.apk.decode\smali ( 這裡要到\smali )
翻譯檔輸出位置:D:\temp\Vignette\strings.txt
開頭為大寫,選取後字串只會抓取字串開頭第一個字元為「大寫」、「數字」、「空白」、「<」,這四種,不勾就抓取全部的字串!
然後就可輸出翻譯檔了。
第3步,就是翻譯啦~~這裡的用法有兩種
1.直接覆蓋
原本的字串(開頭的#表示該字串不進行替換,cj.smali是檔案名稱,200是指第200行,Zoom就是要翻譯的字串)
#cj.smali--200--"Zoom" 直接把Zoom替換掉!!
#cj.smali--200--"縮放"
2.加在原字串後面 (我都用這個)
#cj.smali--200--"Zoom"--"縮放"
這裡得記得把最前面的#給拿掉才有效!!
翻譯完後就可以進行第四步,在SmaliToolsV1.3.jar的
翻譯檔輸入檔位置:D:\temp\Vignette\strings.txt
點「套用翻譯檔」就可以把翻譯過的字串都寫回去smali檔中!
第五步,用DoAPK
選擇反編譯文件目錄:d:\temp\Vignette\vignet~1.apk.decode\
存放APK文件的目錄:d:\temp\Vignette\newApk
點「編譯為APK文件」,成功的話就會產apk檔
d:\temp\Vignette\newApk\vignet~1.dec.apk_signed.apk
註:
1.翻譯檔必須使用UTF-8編碼