修改android软件名,针对一种特殊的情况
修改软件名的原因是有的软件安装后名字看着别扭,有的太长,有的喜欢加上“专业版”、“简体版”、“Pro"之类的,总之放在桌面上看着不顺眼。
一般的修改方法适用于几乎所有的软件,要不是碰到一个特殊的,也不需要写这篇来留个记录了。
原软件名:xxZip Root.
想改成:xxZip.
在我的手机上这个软件名占两行,呵呵,所以要改。
困难的原因是这个软件已经被x过,而apk基本不支持重复反编译,所以不能简单地用apktool了。
而且发现这个软件的名字定义在了 android:label中,所以改资源文件没用了。又不能反编译,那就只能直接修改AndroidManifest.xml了。没有经过反编译的AndroidManifest.xml打开乱码,但也不能用AXMLPrinter,因为不可逆。
只能用WinHex了,直接编辑。
提取出AndroidManifest.xml,用WinHex打开,一般这个文件也不会很大,比较容易找到目标。
想想凡是英文字符串,比如android:label="xxxx",这个xxxx在WinHex里面是可读的,但这里有个问题,这种文件字符串的每个字符占64bits,也就是8Bytes。
像“xxZip Root", 十六进制为”78 00 78 00 51 00 69 00 70 00 00 00 52 00 6F 00 6F 00 74 00" 每个字符后面都补了4bytes. ASCII码显示为"x.x.Z.i.p...R.o.o.t."
由于application和activity都有label,要找紧跟着”a.p.p.l.i.c.a.t.i.o.n."的那一个。
改成什么都不影响软件运行,但是不能删除字节,发现删除后,软件包错误,只能填零了。
最后改成”78 00 78 00 51 00 69 00 70 00 00 00 00 00 00 00 00 00 00 00“,也就是 android:label="xxZip ".虽然有几个空格,不过最后看不出来。
保存,然后替换apk里面的AndroidManifest.xml,签名。
只是个人特殊需求,与破解,汉化都无关。