更改包名称

时间:2016-04-23 06:49:02

标签: android reverse-engineering smali

我打算通过smali(反向)更改包名称

当我打开apktool.yml时,我看到了这个

  

forced-package-id:'127'

我试图改变它但它崩溃了 我为什么要这样做?

2 个答案:

答案 0 :(得分:16)

假设您的目标是重命名apk的包名,那么用于类的包名称是无关紧要的。 apk的包名称与apk中任何类的包名称大多无关。并且没有理由需要触摸包ID。

我建议使用apktool解压apk,然后编辑apktool.yml,将renameManifestPackage设置为新的包名。然后,当您使用apktool重建apk时,它应该使用aapt' s --rename-manifest-package功能来更改包名称。

之后,只需重新签名新的apk就可以了。

apktool d app.apk
// change "renameManifestPackage: null" in app/apktool.yml
// to "renameManifestPackage: my.new.package"
apktool b app -o new_app.apk
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/my.keystore new_app.apk mykeyname

重申一下,你不需要修改任何类的包名。

答案 1 :(得分:5)

据我所知,没有快速的方法来更改包名称。 您必须更改 Manifest.xml 中的package="com.mycompany.myapp",然后手动替换smali文件(和文件夹)中的所有包名称。最后使用您的新软件包名称编辑 apktool.yml 替换旧软件包名称。

可以在此处找到详细的完整教程:http://forum.xda-developers.com/showthread.php?t=2760965