【csma源码】【linux 编辑源码工具】【怎么上传网页源码】apk的xml回编译源码_apk xml文件反编译

2024-12-22 23:11:10 来源:三级分销商城源码php 分类:时尚

1.如何反编译apk文件得到源码和XML文件
2.如何进行APK反编译
3.apk反编译,编译回编出错了?

apk的xml回编译源码_apk xml文件反编译

如何反编译apk文件得到源码和XML文件

       最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,文件哎,反编没办法,编译只能自己想办法了。源码译csma源码后来找到了反编译apk的文件方法,现在拿出来分享下。反编其实这个方法网上都有,编译我只是源码译记载一下自己这段时间的学习情况。

       1.下载工具

       首先,文件要反编译需要下面这

       4个工具:

       dex2jar:将apk中的反编classes.dex转化成Jar文件。

       JD-GUI:反编译工具,编译可以直接查看Jar包的源码译源代码。

       apktool:反编译工具,文件通过反编译APK中XML文件,直接可以查看。linux 编辑源码工具

       apktool-install-windows-r-ibot:辅助windows批处理工具。

       2.解压apk

       直接右键解压apk就行了,这没什么好说的。解压后会有个dex后缀的文件,下面会用到

       3.反编译dex文件

       1)解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。

       2)DOS行命令如下:dex2jar.bat

       xx\classes.dex(xx是怎么上传网页源码classes.dex文件所在的路径)。

       将在同目录得到普通jar包:classes_dex2jar.jar,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。

       4.反编译jar文件

       1)解压压缩文件JD-GUI

       2)运行该文件夹里的jd-gui.exe,打开上面生成的jar包,

       即可看到源代码了。

       5.反编译xml文件

       为什么要发编译xml文件呢?因为直接解压apk得到的xml文件是乱码来的,我们需要用工具把它调会正常来

       具体操作方法:

       1)将下载的apktool和apktool-install-windows-r-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,idea怎么查询源码apktool.bat,apktool.jar。

       2)把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:

       3)在DOS命令行中输入:apktool

       d

       xx\HelloWord.apk

       HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。

       6.后话

       不过,说到底反编译还是反编译,还是svpwm免费dsp源码不能完全地还原出真正的源代码的,比如一般会出现下面这样的问题:

       setContentView();

       在真正的源代码中其实是这样的:

       setContentView(R.layout.welcome)

如何进行APK反编译

       å¦‚何进行APK反编译

        我们下载到某些apk的时候,可能总想学习下别人是怎么进行程序设计的,或者怎样使用xml文件布局的,这时就想到将apk文件的后缀改为rar并解压,最终得到一些图片资源和很多打开为乱码的文件,可见这种方式不可行,这就需要使用下面的工具对apk进行反编译了。

        一、工具准备:apktool、dex2jar、jd-gui

        工具包也可以在这里下载。

        1、dex2jar可以在这里下载,jd-gui可以在这里下载。

        2、apktool,可以到Google官方下载,apktool-1.0.0.tar.bz2(里面有apktool.jar)和apktool-install-windows-2.1_r-1.zip两个包都要下。解压apktool.jar到 C:\Windows,解压apktool-install-windows.zip到任意文件夹(例如E盘根目录)。

        二、使用dex2jar + jd-gui 得到apk的java源码,步骤如下:

        1、用.rar打开apk文档,将classes.dex文件解压出来,然后使用工具反编译成.jar文件。

        在cmd下进入dex2jar.bat所在路径,然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路径下,classes.dex在D:\Android下,所以你进入到dex2jar.bat路径后,输入dex2jar.bat D:\Android\classes.dex,这样会生成一个jar文件。

        2、用jd-gui反编译工具将得到.jar文件反编译成.java文件。

        三、使用apktool得到apk的xml文件

        1、Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入命令:

        apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC

        2、 在解压后的文件夹中可以得到apk的xml配置文件。

        四、第二步得到的程序源代码和第三步得到的xml文件组合下,就成一个android工程,即可得到完整的apk源码。

apk反编译,回编出错了?

       不影响正常运行,只是编译环境,

       compileSdkVersion 告诉 Gradle 用哪个 Android SDK 版本编译你的应用。使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。

       需要强调的是修改 compileSdkVersion 不会改变运行时的行为。当你修改了 compileSdkVersion 的时候,可能会出现新的编译警告、编译错误,但新的 compileSdkVersion 不会被包含到 APK 中:它纯粹只是在编译的时候使用。(你真的应该修复这些警告,他们的出现一定是有原因的)

       因此我们强烈推荐总是使用最新的 SDK 进行编译。在现有代码上使用新的编译检查可以获得很多好处,避免新弃用的 API ,并且为使用新的 API 做好准备。

       注意,如果使用 Support Library ,那么使用最新发布的 Support Library 就需要使用最新的 SDK 编译。例如,要使用 .1.1 版本的 Support Library ,compileSdkVersion 就必需至少是 (大版本号要一致!)。通常,新版的 Support Library 随着新的系统版本而发布,它为系统新增加的 API 和新特性提供兼容性支持。

       解决办法有两种(我测试的前提是反编译的母包是没有包含这两个属性的):

       (1)使用apktool 2.3.2版本,因为2.3.3之后版本针对appt和appt2做了修改,最后AndroidManifest.xml里面不在包含compileSdkVersion和compileSdkVersionCodename

       (2)清除原本的1.apk,重新指定framework-dir:java -jar apktool_2.4.0.jar empty-framework-dir --force,最后发现可以回编译成功,但是AndroidManifest.xml还是会包含compileSdkVersion和compileSdkVersionCodename。

更多资讯请点击:时尚

推荐资讯

日媒:中國超越日本成全球最大汽車出口國

據中新網援引外媒報道,當地時間1月31日,日本汽車工業協會公布的數據顯示,日本2023年汽車出口量為442萬輛。中國汽車工業協會發布的數據顯示,中國2023年汽車出口量達491萬輛。這意味着日本七年來

“在中国永远都不够卖”:东南亚“榴莲战”背后丨智库视点

商务部发布的数据显示,泰国商业部透露,2024年1月至4月期间,泰国向中国出口的榴莲总量达225204吨。目前,泰国是世界上第一大榴莲生产国和出口国。榴莲被称为热带水果之王,是多年生植物,喜炎热湿润气

賀錦麗副手華茲曾在廣東教書,對中國態度成美國大選爭議話題

賀錦麗副手華茲 長期中國經驗成美選爭議話題中央社)美國民主黨副總統參選人華茲長期在中西部服務鄉里,沒有傲人學歷,因貼地氣成為副總統賀錦麗的競選副手。不過他早年的中國工作經驗及相關發言,在選舉期間已成對