SH-12C之全开三 /system/framework 汉化

nemogz

普通会员
2007-08-21
259
0
0
[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。
代码:
busybox dd if=/system/framework/framework.odex.bak of=/system/framework/framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
11、分离ODEX
主要工具: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
这是一条指令哦,dexopt-wrapper 中间无回车换行。


最好按这个顺序ODEX

12、修改权限
主要工具:Apkdb.exe
关键点说明:组合工具包,内含ADB。

代码:
chmod 644 /system/framework/framework.odex
基本上所有 /system/app/、/system/framework/的权限都是644。

13、修改用户
主要工具:Apkdb.exe
关键点说明:组合工具包,内含ADB。
代码:
chown root.root /system/framework/framework.odex
基本上所有 /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的文件夹拷过来。
未命名.JPG

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
3、修改smali文件,期间用到UltraEdit 和 Beyond Compare 配合转码,在Beyond Compare 修改出“重置使用记录”,再到UltraEdit 拷贝十六进制代码。别小看这一条,花了不少时间才找对方法,那个片假汉字代码真折腾,xml文件修改容易,smali文件汉化是修改的是程序代码,就会遇到转码问题。

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

 
A

ayahai

游客
话说没什么刷机经验,两个范例间有什么区别??
 

cssmp

普通会员
2007-07-19
236
0
0
支持下LZ~~这个还真不错。。。为什么104SH没ROOT。。。汗。。。
 
J

Johneywalker

游客
感觉12c 汉化倒不用可以追求. 能完全root就足够了
另,谢谢楼主无私分享哈
 

nemogz

普通会员
2007-08-21
259
0
0
Johneywalker 发表于 2012-9-23 12:10
感觉12c 汉化倒不用可以追求. 能完全root就足够了
另,谢谢楼主无私分享哈
全汉化,一来是心血来潮、兴之所至,二来可以学习整个Android的架构,三来可以掌握工具使用。
 

cssmp

普通会员
2007-07-19
236
0
0
nemogz 发表于 2012-9-23 09:05
先看能否半root,http://bbs.blueshow.net/thread-1714972-1-1.html
如果可以,基本上可以全root。
多谢LZ~先看看~话说104SH是4.0的机器。。。
 

nemogz

普通会员
2007-08-21
259
0
0
cssmp 发表于 2012-9-23 15:45
多谢LZ~先看看~话说104SH是4.0的机器。。。
5.0也可以试试,那个半root只有两个apk,简单无损,抓的是传感器漏洞。
 
A

ahazbd

游客
额,杯具了,我的sh-12c没有等到这一天就变砖了,杯具
 

日历风貌

游客
看见代码就头痛,但是,此贴必顶的啊,