Oct1a

APK包的一些修改心得apk反编译

工具/原料

  • 安卓手机一部

一、单纯修改apk中未加密资源

  • 什么资源没有加密?非res文件夹下的资源,以及res中的图片。

    1、直接用WinRAR/7-Zip解压缩apk包。

    需要了解:META-INF就是签名;res就是文件类资源(图片及xml),classes.dex就是代码部分,resources.arsc就是字符串之类的资源。

    2、修改/assets/operate_type.xml 文件。

    3、删除META-INF 签名文件夹。

    4、打包apk。

    5、进行签名:

    目前网络上提供的工具签名方法都是这个:

    java -jar SignApk.jar platform.x509.pem platform.pk8 aa.apk aa_signed.apk

    ┌─ SignApk.jar 是签名工具

    ├─ platform.pk8 是私钥

    ├─ platform.x509.pem 是相对应的证书/公钥

    └─ 使用SignApk.jar进行签名,其会自动删除META-INF 签名文件夹,并生成新签名。

    6、签名后的apk即可进行安装使用。

    APK包的一些修改心得apk反编译

二、签名的方法

  • 除上文的签名外,还有一种方法,目前签名是成功,验证成功,但是apk无法安装,报apk签名错误。

    (1)生成keystore文件

    keytool -genkey -keystore test.keystore -alias CERT -keyalg RSA -validity 2000

    keytool 在Java/jdk/bin 目录下

    (2)使用keystore进行签名

    jarsigner -verbose -keystore test.keystore -signedjar aa_sig.apk aa.apk CERT

    jarsigner 在Java/jdk/bin 目录下

    (3)验证签名

    jarsigner -verify aa_sig.apk

    jarsigner 在Java/jdk/bin 目录下

    APK包的一些修改心得apk反编译

三、解包工具的使用,修改apk中加密资源

  • 1、对apk进行解包:(包为aa.apk,解包后文件夹为aa)

    java -jar apktool.jar d aa.apk aa

    2、修改aa文件夹中资源

    3、对文件夹aa进行打包成New-aa.apk

    java -jar apktool.jar b aa New-aa.apk

    4、签名apk

    java -jar SignApk.jar platform.x509.pem platform.pk8 New-aa.apk New-aa_signed.apk

    5、安装apk测试

四、其他相关工具

  • 1、有一个Arsc修改器,可以在直接从apk解压出arsc资源而不解包情况下修改string等。(此方法完全可以被apktool方法替代,一是部分资源不能进行修改,工具封锁了吧…二是字符串可能直接写在代码中,在classes.dex中,这个工具也不管用。)

    2、有一个dex2jar工具,直接将apk包中的dex变成jar,从而使用jd-gui进行查看java源码代码。(个人感觉效果不好。还不如直接用apktool弄出smali文件,直接修改方便。)

五、修改xml的一些心得

  • 凡是看着文章的大部分人都是要美化去广告什么的。这就要面临修改xml,修改了几次,有点小经验,算作结尾:

    1、仅仅用作展示的图片、文字,一般可以在xml中进行注释掉。而一些不需要的按钮图片,注释掉可能出问题,比如调用,此时可以修改为不显示,或者直接把他的宽度高度修改为0

    注释方法是<!– 注释的内容 –>

    修改不显示的方法是加入android:visibility=”invisible”

    修改宽度高度方法是android:layout_width=”0.0dip” 和 android:layout_height=”0.0dip”

    2、所有的资源都可以任意修改。比如一个logo图片是12060的,你可以修改为120120,由长方形修改为正方形。我一般是把资源导入到eclipse中边看着边修改。同时,也可以加入新的资源图片等,然后对应着修改xml布局。有了res图片资源和xml布局权限,界面完全可控。除非程序代码中强写的或者还有初始化布局。

    差点忘记附件了…apk相关工具.传了这么多年附件。

    附上我修改的一点点效果:(模拟器和魅族M9真机)

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。