Android APK反编译 && user版本push应用到系统
2012-10-20 00:19
274 查看
网上各种各样的APK,如果能了解其实现细节,对于学习、借鉴是个很好的推动。利用现成的APK反编译包,可以实现这个目的。
(1)命令方式反编译Apk得到Java源代码
下载反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件,源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码。
具体步骤:首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。在命令行下定位到dex2jar.bat所在目录,运行:dex2jar.bat classes.dex,生成classes_dex2jar.jar。然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了。
(2)图形化反编译Apk得到Java源代码
提供一种图形化反编译工具:Androidfby。首先打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk,之后就可以得到一个与apk同名的目录,里面有jar。用上述的jd-gui.exe打开这个jar就可以看到源码。有些apk采用加密机制的话通过查看jar是看不到内容的,这时可以通过命令反编译方式得到jar试试。
(3)反编译apk得到XML配置、语言资源
如果是汉化软件,这将特别有用,具体步骤请参见参考原文。
(4)相反,如果想混淆代码防止被别人反编译破解。要在:在project.properties的末尾加上一句话就行,proguard.config=proguard-project.txt。
===============================================================================================================
user版本的软件,由于权限原因,正常情况下是没有办法push应用到系统的。可以采取先root工具root,获得root账户后,再把system/app权限设置777,再push进去就行。细节:
adb shell (进入一级$账户)
su (进入二级#账户,退出时也要退两级)
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
chmod 777 /system
cd system
chmod 777 app/
rm -rf xxx.odex
退出后再push进去就行了。需要注意的是,user版本的system/app中还有对应apk的obex文件,要把老的这个删掉,新push进去的apk才有作用。
参考原文:/article/1358299.html
(1)命令方式反编译Apk得到Java源代码
下载反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件,源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码。
具体步骤:首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。在命令行下定位到dex2jar.bat所在目录,运行:dex2jar.bat classes.dex,生成classes_dex2jar.jar。然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了。
(2)图形化反编译Apk得到Java源代码
提供一种图形化反编译工具:Androidfby。首先打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk,之后就可以得到一个与apk同名的目录,里面有jar。用上述的jd-gui.exe打开这个jar就可以看到源码。有些apk采用加密机制的话通过查看jar是看不到内容的,这时可以通过命令反编译方式得到jar试试。
(3)反编译apk得到XML配置、语言资源
如果是汉化软件,这将特别有用,具体步骤请参见参考原文。
(4)相反,如果想混淆代码防止被别人反编译破解。要在:在project.properties的末尾加上一句话就行,proguard.config=proguard-project.txt。
===============================================================================================================
user版本的软件,由于权限原因,正常情况下是没有办法push应用到系统的。可以采取先root工具root,获得root账户后,再把system/app权限设置777,再push进去就行。细节:
adb shell (进入一级$账户)
su (进入二级#账户,退出时也要退两级)
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
chmod 777 /system
cd system
chmod 777 app/
rm -rf xxx.odex
退出后再push进去就行了。需要注意的是,user版本的system/app中还有对应apk的obex文件,要把老的这个删掉,新push进去的apk才有作用。
参考原文:/article/1358299.html
相关文章推荐
- 获取应用的当前版本号&获取当前android系统的版本号
- Android系统启动-->应用启动-->界面的展示(二)
- 获取应用的当前版本号&获取当前android系统的版本号
- Android应用开发之APK版本更新的SDK及API
- 获取应用的当前版本号&获取当前android系统的版本号
- android该系统的应用API选择演示版本
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
- Android获取系统已安装应用软件程序(apk)信息
- Android的源代码结构 && 一些常用术语 && Android的支持库 && app/apk包进系统
- Android系统启动-->应用启动-->界面的展示(三)
- 【原创】反编译Android apk,提取*.…
- android 应用APK使用系统APK
- Mac系统下对Android apk进行反编译
- MAC笔记本下Android 反编译apk文件最新版本
- android应用和系统版本信息
- Android系统apk应用的另一种启动方法---am命令---张子芳
- Android系统编译之将自己编的Launcher APK成为系统桌面应用
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
- 对android应用安装程序apk反编译与分析
- 安卓:调用真正系统默认短信应用发短信. (含解决4.4系统环聊问题, 含调低版本apk调用高版本系统api)