温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何理解apk反编译和重新打包

发布时间:2021-11-26 17:29:24 来源:亿速云 阅读:175 作者:柒染 栏目:移动开发

这篇文章给大家介绍如何理解apk反编译和重新打包,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

最近用anysdk接android,接入有点小麻烦,不过确实带来了很大的便利,接入新渠道只需要设置参数就可以了,唯一要注意的就是,发布的时候把debugMode关闭。

不过android下面的anysdk有个问题,就是所有渠道必须用同一套资源,然后使用母包生成渠道包,包之间无法做差异化,这与我们项目有点矛盾。要解决这个问题,能想到的有两个办法:

  1. 母包就将某个渠道的最终资源弄进去,再生成渠道包,这个确实可行,但是实在太麻烦,不好维护,而且使anysdk带来的便利大大降低。

  2. 一次性生成所有渠道包,再用apktool等工具反编译,把差异化文件添加进去,再重新签名。

    反编译倒是没问题,遇到了一个问题:需要额外下载一个apktool.jar。没想到重签名卡了好久,因为网上说的命令都是jarsigner -verbose -keystore xx.keystore -signedjar -pkg.apk pkg1.apk xx.keystore,也没讲每个参数什么意思,用的时候总是出错,搞了好久才成功。

    下面将命令解释如下:

    jarsigner:jdk下的一个工具,后缀exe

    -verbose:输出详细信息

    -keystore:秘钥文件

    -signedjar:签名文件,第一个参数为签名后的文件,相当于输出文件,第二个为未签名文件,输入文件。开始搞反了,以为第一个是输入,第二个输出,被坑了一把。

    最后一个参数,是keystore的alias名,网上说的真是误人子弟,放两个keystore文件名有何意义,是吧。

所以正确的命令应该是:jarsigner -verbose -keystore xx.keystore -signedjar output.apk input.apk alias

关于如何理解apk反编译和重新打包就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

apk
AI