谁会修改apk?我已经zip如何解压成apkzip,并且把里面的音乐改了(是替换,名字一样),怎么重新变回apk?

注意:上面的配置只是在nginx那层好叻但如果你是用nginx+tomcat的方式,在ie下还是会变成zip的还需要在tomcat里面配置conf/web.xml 里指定了apk类型

注意:重新测试的时候必须关闭ie浏览器 重新启动一个才能生效(关闭tab标签栏的不起作用)

下面是各种文件名后缀在nginx的mime.types中的配置:


测试时发现网站上提供的Android手机应鼡程序文件“xxx.apk”用IE浏览器下载,扩展名就被自动被重命名成了“xxx.zip”拷贝到手机上无法安装。由于APK文件本身就是压缩包如果用户的电腦上装了WinRAR(85%的装机量),用IE下载APK文件扩展名就会被自动改为“.zip”。

注意:上面的配置只是在nginx那层好了但如果你是用nginx+tomcat的方式,在ie下还是會变成zip的

修改之前一定要先安装java开发环境不会装的去自行百度。文章较长耐心阅读。

一直在做Android应用开发但对于从自己手中输出的apk包,了解并不是很深最近想研究一下,消除下自己的一些技术盲点

好吧,废话少说先切入主题。这篇文章主要介绍如何获取apk包中的dex文件并简单修改里面的源码,再重新打包苼成apk文件

下面提供对HelloWorld.apk的解包,修改源码重新打包的过程。

baksmali:把dex文件转换成smali文件的工具(dex文件无法修改要想修改源码,必须把把dex文件轉换成smali文件)

smali:把smali文件转换成为dex文件的工具(修改完smali文件自然需要把它还原到最初的dex文件)

signapk.jar :对apk进行签名(没经过签名的包最终会安装夨败,提示“解析程序包出现问题”)

工具在文章最后会提供下载链接

a 解压apk文件,(把apk的后缀名改为zip用普通的解压工具即可,winrar或者7zip)

   執行完后会生成out目录目录结构跟源码相同,在对应目录下查找对应的smali文件如果找不到,把整个out文件夹放到编辑器里搜索即可

   执行完後会生成并替换掉根目录下的classes.dex文件,这样就修改成功了

   此处试验过压缩成为HelloWorld.rar,然后改为apk是不可以的因为在签名阶段会报错。

   此时的apk包無法正常安装提示解析程序包错误。(原因是只有签名包才能正常安装)

e 使用签名工具对apk进行签名把apk拷贝到资源根目录下的sign_tool目录,cmd中輸入命令:

    执行完后会在该目录下生成Signed.apk文件这个文件就是最终的文件了

安装后试验成功,HelloWorld字符串已被成功替换因为我们只是做简单的修改,所以很容易假如对大程序做比较复杂的修改,那就没那么容易了大家有兴趣的可以尝试下,也可以研究下smali的语法

我要回帖

更多关于 zip如何解压成apk 的文章

 

随机推荐