用apkide修改之后怎么一开就是已停止?解决了加50分!

用apkide修改之后怎么一开就是已停止?解决了加50分!,第1张

1将apk以压缩包的形式打开删除原签名后,再签名,安装能够正常打开,但是用IDE(即apk改之理,会自动反编译dex)工具二次打包,却出现非正常情况的,如:闪退/d出非正版提示框。可以确定是dex文件的校验
2、将apk以压缩包的形式打开删除原签名再签名,安装之后打开异常的,则基本可以断定是签名检验。如果在断网的情况下同样是会出现异常,则是本地的签名检验;如果首先出现的是提示网络没有连接,则是服务器端的签名校验

要反编译。直接解压后无法再压缩回去了,首先要反编译,修改后再选定文件夹进行回编译。回编译之后还需要对apk包进行签名。需要注意的是修改后的apk不能和已经安装的原APK共存,也不能覆盖。只能先删除原安装的程序后再安装修改后的apk。

点击除签名验证即可。根据查询apk服务器连接介绍可知,点击除签名验证即可去除。服务器(serer)指在网络环境中或在具有客户-服务器结构(参见客户-服务器计算)的分布式管理环境中,为客户的请求提供服务的节点计算机。

基本过程如下:

1、将apk解包成一个文件夹

2、修改AndroidManifestxml中对应的包名

3、修改smali目录下中的包

4、将文件夹打包成apk

5、将apk重新签名

6、验证apk的签名

7、优化apk

8、安装apk,并测试

基本前提条件:

1、java的环境

2、Eclipse及android的开发环境(这个主要是用来进行调试)

3、text文本编辑器,本人用的是UEdit,也可以用类似的,主要是利用其查找及替换功能

这篇文章主要用来反编译apk得到源码,但google进行了反制,只能得到一些可读性不高的源码,这里主要是利用反编译apk生成程序的源代码和、XML配置、语言资源等文件

参考文献里提到的apktool-100tarbz2和apktool-install-windows-21_r01-1zip均可以从>

参考了国内的技术文章后,有人发帖以上面的思路进行 *** 作,但没有发技术文章,所以笔者只能去国外论坛中逛逛了,在Stack Overflow中,找到了相关的帖子,有老外留言"you can't do this",这个的确有违技术道德,但这里只做学习参考或交流。找到了一片帖子>

下面就按照上面的步骤一步步 *** 作:我是已QQ浏览器40版的apk来 *** 作的。

1、我的apktool安装到了E盘下的apktool目录下,所以的 *** 作也在这个目录下进行 E:\apkTool

   将apk复制到E:\apkTool目录下,重命名为qq40apk(这个没有要求,随意就好)

   将apk解包  命令行下cd到E:\apkTool这个目录  apktool d qq4oapk qq4  将apk解包到qq4(这个也可以随意)这个目录

   E:\apkTool\qq4这个目录下内容如下:

2、修改AndroidManifestxml中的包名,

   将package后面的包名comtencentqbx改为你想要的新包名,我改为了comtianxiaotencentweb

   将涉及原包名的comtencentqbx的相关activity的声明中的包名均改为新包名comtianxiaotencentweb

   至于intent-filter里面的action名中包含原包名的,则可以不改,如果改的话,代码中也要相应的改变

   另外,如果有provider,provider的authorities也得改,这个在同一手机上必须唯一,否则安装会失败

3、在E:\apkTool\qq4\smali目录下,有很多子目录,子目录下的文件多以smali结尾,这中文件的语法有点类似于汇编语言,具体原理就不深究了。

   将smali目录下的所有文件中的原包名的声明形式com/tencent/qbx改为新包名com/tianxiao/tencentweb

   具体如下,用UEdit在文件中替换即可,将目标目录指向E:\apkTool\qq4\smali,这个将近1000条左右

   如果之前改为action里面的包名,也要将字符串形式的包名comtencentqbx改为comtianxiaotencentweb

   如果有provider也要讲原来的authorities值改为在AndroidManifestxml中新改的authorities值。

4、将E:\apkTool\qq4重新打包为apk

   apktool b qq4 newqqapk

5、将新的newqqapk 重新签名

   签名的方法很多,一主要是手动生成签名,用命令行签名

   我采用的现成的,下载了一个Auto-sign的文件夹,进行了签名,这个比较简单,网上帖子很多,就不赘述。

   新签名后的apk名为  newqq4signedapk

6、验证签名 是否正确

   jarsigner -verify  -verbose -certs newqq4signedapk

   一般来说,没问题,略过

7、优化apk

  zipalign -v 4 newqq4signedapk latestqqapk    优化过的apk名为latestqqapk

8、安装新的apk,验证是否成功

   这个最好把Eclipse打开,手机连上,查看logcat的安装信息。

   我尝试了3次才成功,主要是忘了 provider的authorities的处理,

出错信息如下: Can't install because provider name qbx_bookmarks (in package comtianxiaotencentweb) is already used by comtencentqbx

原因很清楚,所以debug还是相当给力的,原来不喜欢debug,看debug过程可以更好的了解执行过程。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10257118.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存