Android 反编译apk

1. java -jar baksmali-1.2.6.jar -x Email.odex 

分解odex文件,生成out目录

需放在framework下面,需要里面的一些资源

需要baksmali-1.2.6.jar和smali-1.2.6.jar,版本须为1.2.6

2. java -Xmx512M -jar smali-1.2.6.jar out -o classes.dex

将out目录打包成classes.dex

3. ./dex2jar.sh classes.dex

将classes.dex文件放在和dex2jar.sh相同的目录下面

运行命令,反编译后为:classes.dex.dex2jar.jar

4. ./jd-gui classes.dex.dex2jar.jar

使用jd-gui工具查看classes.dex.dex2jar.jar

5.  java -jar AXMLPrinter2.jar  ~/Contacts.apk_FILES/res/layout/dialer_app.xml 

参考:http://haianzhangbin.blog.163.com/blog/static/69427947201061211927962/

android的apk包签名

出处:http://blog.chinaunix.net/u3/118986/showart_2332011.html

为何要签名,因为android的安全设置,详细请参见frameworks/base/core/res/AndroidManifest.xml文件。

我们要做全功能多媒体播放器,势必涉及surfaceflinger和sound的调用,除了在apk的AndroidManifest.xml 文件中加 <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />, 还需要对apk进行签名,因为此权限点的等级是signature级别。

具体操作如下:

1,在android源码目录build/tools/signapk下有源码。到源码根目录make signapk.即可生成signapk.jar于out/host/linux-x86/framework/signapk.jar

2,到build/target/product/security/下找到platform.x509.pem和platform.pk8 文件,用于签名所用。

3,编译你自己的apk,make AgouMediaPlayer。

4,运行命令进行签名,如下生成的AgouMediaPlayer_new.apk就是经过签名的。

java -jar ./out/host/linux-x86/framework/signapk.jar ./build/target/product/security/platform.x509.pem ./build/target/product/security/platform.pk8 out/target/product/generic/system/app/AgouMediaPlayer.apk out/target/product/generic/system/app/AgouMediaPlayer_new.apk

apktool1.4.1.tar.bz2和apktool-install-linux-r04-brut1.tar.bz2解压到

usr/local/bin

反编译

apktool d QQ_for_Pad_v1.4.1.apk abc

打包

apktool b abc

签名

java -jar signapk.jar /home/xxx/build/target/product/security/platform.x509.pem /home/xxx/build/target/product/security/platform.pk8 /home/zhanggz/下载/QQ_for_Pad_v1.4.1/dist/QQ_for_Pad_v1.4.1.apk /home/xxx/下载/QQ_for_Pad_v1.4.1/dist/QQ_for_Pad_v1.4.1_new.apk

原文地址:https://www.cnblogs.com/zgz345/p/2341669.html