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