[i=s] 本帖最后由 nemogz 于 2012-10-3 19:51 编辑 [/i]
汉化底层比较完整的步骤、工具、关键点:
1、ROOT及ROM的备份。
http://bbs.blueshow.net/thread-1775930-1-1.html
http://bbs.blueshow.net/thread-1776575-1-1.html
主要工具:Menu0526
2、备份/system/app/、/system/framework/两个文件夹。
主要工具:xUltimate-v2.4
关键点说明:备份出来的文件夹名为origi_app、origi_frame,部分ODEX被系统占用时,会读不出。建议将这两个文件夹再备份到另外一个盘。
3、合并ODEX到APK。
主要工具:Apkdb.exe
浏览附件Apkdb_Setup172.part1.rar
浏览附件Apkdb_Setup172.part2.rar
浏览附件Apkdb_Setup172.part3.rar
关键点说明:这是组合工具包,安装后直接右键功能相当方便,但部分文件须手动更新,以保证最少BUG;内含baksmali (解开ODEX) 和 smali(封装成Class.dex)。
baksmali、smali 更新网址:http://code.google.com/p/smali/downloads/list
4、反编译、回编译APK。
主要工具:Apkdb.exe
关键点说明:组合工具包,内含apktool。
apktool 更新网址: http://code.google.com/p/android-apktool/downloads/list
5、搜索关键字。
主要工具:SearchMyFiles 浏览附件SearchMyFiles 2.25 Portable.rar
关键点说明:可以直接搜索APK或文件夹里面的字符串,打开软件点选“TXT/备注说明”和“搜索所有数据流”
6、文件、文件夹比较和编辑。
主要工具:Beyond Compare
关键点说明:软件内的行左右复制、多行左右复制、文件左右复制、文件夹左右复制,基本上鼠标可操作,很好用。
7、代码转换。
主要工具:UltraEdit
关键点说明:有助于找较高难度的隐藏信息,及其汉化转码。
8、翻译。
主要工具:
http://translate.google.cn/?hl=zh-CN&tab=wT
http://fanyi.baidu.com/
关键点说明:感觉都不太好用。(各位有无好介绍?)
9、签名APK。
主要工具:Apkdb.exe
关键点说明:组合工具包,内含signapk。未搞清,一直用替换法,保留原有签名。
10、复制旧ODEX的签名到新ODEX。
主要工具:Apkdb.exe、busybox
关键点说明:组合工具包,内含ADB。
11、分离ODEX
主要工具:dexopt-wrapper dexopt 浏览附件dexopt-wrapper.tar.gz
关键点说明:需预先放入手机/system/bin/下。
更新网址:http://code.google.com/p/just-for-you/downloads/list
这是一条指令哦,dexopt-wrapper 中间无回车换行。
最好按这个顺序ODEX
12、修改权限
主要工具:Apkdb.exe
关键点说明:组合工具包,内含ADB。
基本上所有 /system/app/、/system/framework/的权限都是644。
13、修改用户
主要工具:Apkdb.exe
关键点说明:组合工具包,内含ADB。
基本上所有 /system/app/、/system/framework/的用户都是 root.root 。
范例A:
framework-res.apk,无ODEX
1、ROOT==》备份到电脑/xUltimate-v2.4/origi_frame/==》在文件上右键“反编译APK文件”
2、取巧的方法,借用SH8298的framework-res.apk,反编译后,用Beyond Compare文件夹复制,将带zh-rCN的文件夹拷过来。
3、接下来就参考007的汉化 http://bbs.blueshow.net/thread-1759586-1-1.html
结果:(01.01.02版本的汉化framework-res)
[hide]
浏览附件framework-res.part1.rar
浏览附件framework-res.part2.rar
[/hide]
范例B
framework.apk framework.odex
相机功能菜单的最后一项翻译,Reset usage history,花了我将近一个星期找到其所在和找相关的方法合并、分离ODEX。
(0.1%的汉化花了99.9%的功夫)
1、SearchMyFiles 搜索Reset usage history(所有数据流方式)。
2、解开framework.odex关键:若用APKDB里的旧版本ODEX,再放回去运行有USB连接错误的BUG;-c 指定包含所需系统文件(core-junit.jar 不是缺省包含,所以一定要用这个参数才能解开ODEX)
3、修改smali文件,期间用到UltraEdit 和 Beyond Compare 配合转码,在Beyond Compare 修改出“重置使用记录”,再到UltraEdit 拷贝十六进制代码。别小看这一条,花了不少时间才找对方法,那个片假汉字代码真折腾,xml文件修改容易,smali文件汉化是修改的是程序代码,就会遇到转码问题。
4、回编译成APK。
5、分离ODEX,恢复ODEX签名。
汉化底层比较完整的步骤、工具、关键点:
1、ROOT及ROM的备份。
http://bbs.blueshow.net/thread-1775930-1-1.html
http://bbs.blueshow.net/thread-1776575-1-1.html
主要工具:Menu0526
2、备份/system/app/、/system/framework/两个文件夹。
主要工具:xUltimate-v2.4
关键点说明:备份出来的文件夹名为origi_app、origi_frame,部分ODEX被系统占用时,会读不出。建议将这两个文件夹再备份到另外一个盘。
3、合并ODEX到APK。
主要工具:Apkdb.exe
浏览附件Apkdb_Setup172.part1.rar
浏览附件Apkdb_Setup172.part2.rar
浏览附件Apkdb_Setup172.part3.rar
关键点说明:这是组合工具包,安装后直接右键功能相当方便,但部分文件须手动更新,以保证最少BUG;内含baksmali (解开ODEX) 和 smali(封装成Class.dex)。
baksmali、smali 更新网址:http://code.google.com/p/smali/downloads/list
4、反编译、回编译APK。
主要工具:Apkdb.exe
关键点说明:组合工具包,内含apktool。
apktool 更新网址: http://code.google.com/p/android-apktool/downloads/list
5、搜索关键字。
主要工具:SearchMyFiles 浏览附件SearchMyFiles 2.25 Portable.rar
关键点说明:可以直接搜索APK或文件夹里面的字符串,打开软件点选“TXT/备注说明”和“搜索所有数据流”
6、文件、文件夹比较和编辑。
主要工具:Beyond Compare
关键点说明:软件内的行左右复制、多行左右复制、文件左右复制、文件夹左右复制,基本上鼠标可操作,很好用。
7、代码转换。
主要工具:UltraEdit
关键点说明:有助于找较高难度的隐藏信息,及其汉化转码。
8、翻译。
主要工具:
http://translate.google.cn/?hl=zh-CN&tab=wT
http://fanyi.baidu.com/
关键点说明:感觉都不太好用。(各位有无好介绍?)
9、签名APK。
主要工具:Apkdb.exe
关键点说明:组合工具包,内含signapk。未搞清,一直用替换法,保留原有签名。
10、复制旧ODEX的签名到新ODEX。
主要工具:Apkdb.exe、busybox
关键点说明:组合工具包,内含ADB。
代码:
busybox dd if=/system/framework/framework.odex.bak of=/system/framework/framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
主要工具:dexopt-wrapper dexopt 浏览附件dexopt-wrapper.tar.gz
关键点说明:需预先放入手机/system/bin/下。
更新网址:http://code.google.com/p/just-for-you/downloads/list
代码:
dexopt-wrapper /system/framework/framework.jar /system/framework/framework.odex /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
最好按这个顺序ODEX
12、修改权限
主要工具:Apkdb.exe
关键点说明:组合工具包,内含ADB。
代码:
chmod 644 /system/framework/framework.odex
13、修改用户
主要工具:Apkdb.exe
关键点说明:组合工具包,内含ADB。
代码:
chown root.root /system/framework/framework.odex
范例A:
framework-res.apk,无ODEX
1、ROOT==》备份到电脑/xUltimate-v2.4/origi_frame/==》在文件上右键“反编译APK文件”
2、取巧的方法,借用SH8298的framework-res.apk,反编译后,用Beyond Compare文件夹复制,将带zh-rCN的文件夹拷过来。
3、接下来就参考007的汉化 http://bbs.blueshow.net/thread-1759586-1-1.html
结果:(01.01.02版本的汉化framework-res)
[hide]
浏览附件framework-res.part1.rar
浏览附件framework-res.part2.rar
[/hide]
范例B
framework.apk framework.odex
相机功能菜单的最后一项翻译,Reset usage history,花了我将近一个星期找到其所在和找相关的方法合并、分离ODEX。
(0.1%的汉化花了99.9%的功夫)
1、SearchMyFiles 搜索Reset usage history(所有数据流方式)。
2、解开framework.odex关键:若用APKDB里的旧版本ODEX,再放回去运行有USB连接错误的BUG;-c 指定包含所需系统文件(core-junit.jar 不是缺省包含,所以一定要用这个参数才能解开ODEX)
代码:
java -Xmx512M -jar baksmali-1.4.0.jar -c:core-junit.jar -a 10 -x framework.odex
java -Xmx512M -jar smali-1.4.0.jar out -o classes.dex
4、回编译成APK。
5、分离ODEX,恢复ODEX签名。
代码:
adb push framework.jar /sdcard/framework.jar
adb shell
su
busybox mount -o remount,rw /system
busybox cp -f /system/framework/framework.jar /system/framework/framework.jar.bak
busybox cp -f /system/framework/framework.odex /system/framework/framework.odex.bak
busybox cp -f /sdcard/framework.jar /system/framework/framework.jar
rm /system/framework/framework.odex
dexopt-wrapper /system/framework/framework.jar /system/framework/framework.odex /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
busybox dd if=/system/framework/framework.odex.bak of=/system/framework/framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
busybox cp -f /system/framework/framework.jar.bak /system/framework/framework.jar
chmod 644 /system/framework/framework.odex
chown root.root /system/framework/framework.odex
rm /system/framework/framework.jar.bak
rm /system/framework/framework.odex.bak
reboot