• 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

  • 相关阅读:
    MongoDB查询
    MongoDB增删改查
    redis复制
    HTTP请求方法与状态码
    Solr工作原理
    idea多行同一列同时编辑;多光标处同时编辑方法
    SVN merge 三种方式
    vue中msgbox的使用;如何在msgbox中新增一个输入框组件传值给后台
    切换或重新输入svn用户名密码或通过tortoisesvn查看svn密码
    MyBatis中#{}和${}的区别
  • 原文地址:https://www.cnblogs.com/zgz345/p/2341669.html
Copyright © 2020-2023  润新知