如何查询apk更改过的参数

如何查询apk更改过的参数,第1张

安装APKTool可以查看。

APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。需要java支持。通过Apktool工具,能完整的从apk安装包中提取出resource、dex、manifest、xml等文件;也可以修改资源文件之后rebuild一个apk。本文主要说明该工具如何安装以及使用。如果感觉该工具的下载和配置过程繁琐。

Android开发过程中我们有时需要使用第三方apk资源,而启动第三方apk在某些情况下需要指定相应的包名和启动的Activity名,这个时候就需要获取这两个名称,我们可以使用如下三种方法:

1、使用aapt //aapt是sdk自带的一个工具,在你安装的Eclipse路径下的sdk\build-tools\中,如我的是D:\Eclipse\androidTools\sdk\build-tools\android-442,如果你下载有apk反编译工具,也可以直接使用里面的aapt

以“GO备份apk”为例,先进入cmd命令行窗口,然后运行:D: -> Eclipse\androidTools\sdk\build-tools\android-442

-> aapt dump badging C:\Users\Administrator\Desktop\GO备份apk,即可获取到AndroidManifestxml中我们需要的内容,如

package: name='comjiubanggobackupex'

launchable-activity: name='comjiubanggobackupproStartupPageActivity'

2、查看AndroidManifestxml

同样是查看AndroidManifestxml,这里我们可以采用反编译方法来获取信息,同样是打开cmd命令行窗口,然后运行:E:

-> apk反编译工具\apktool\apktool -> apktoolbat d -f C:\Users\Administrator\Desktop\GO备份apk GO备份,然后打开“GO备份”文件夹,打开droidManifestxml文件,找到manifest节点的package属性值package="comjiubanggobackupex"语句即为包名,查找androidintentactionMAIN和androidintentcategoryLAUNCHER对应的activity,该activity对应的android:name属性即为入口activity名称,如<activity

android:name="comjiubanggobackupproStartupPageActivity"。

3、使用uiautomatorviewer

可以直接在命令行输入uiautomatorviewer,打开获取屏幕截图工具,连接手机,打开所要获取包名的应用,然后获取其截图,根据截图查看package即可,uiautomatorviewer的使用这里就不做介绍了。使用这个需要注意的是,该app必须是有界面的,否则无法获取。

另外,

androidintentactionMAIN 属性决定应用程序最先启动的Activity

androidintentcategoryLAUNCHER属性决定应用程序是否显示在程序列表里

一、APK生成 odex文件方法:

编译开源GIT上的build/tools /dexpreopt/dexopt-wrapper这个,使用dexopt-wrapper即可, *** 作步骤将dexopt-wrapper放到/data/local目录中,使用adb shell执行linux命令行,使用cd命令进入/data/local目录,cd /data/local/dexoptwrapper android123apk android123odex

二、合并odex和 少dex的apk 为完整的apk文件

需要用到的工具是smali,一个开源的java处理软件:

1下载的baksmali和 smali的jar文件到工作目录

2把ROM里面的coreodex, extodex, frameworkodex, androidpolicyodex, servicesodex这5个文件也放在同一目录(也可以放在别的目录,通过设置BOOTCLASSPATH指定,默认就是当前目录)。

例:以teeter为例子 (HTC一些Android常常会内置),ROM里面拿出来的可能是2个文件,teeterapk + teeterodex。

1、分解odex文件:java -jar baksmali-121jar -x teeterodex如果没其他问题,会在工作目录生成一个out的目录,里面是分解出来的一些文件,我们在此不深究这些文件的作用。

2、把分解得到的文件变成classesdex:java -Xmx512M -jar smali-121jar out -o classesdex,这样得到了一个有用的classesdex文件

3、用WinZip或者WinRAR打开teeterapk文件,把这个classesdex 放进去

4、最后再用signapk把最新得到的这个包含classesdex的apk重新签署一下 (Auto Sign签名工具往期的文章里有下载),就生成一个可以安装的单独APK程序了。

5、签名完成后即可安装使用了

APK Extractor 是一款无需root权限就能将系统级的应用提取出来并备份或还原的实用工具,它能帮你将需要备份的APK应用提取到SD卡保存或发送到E-MAIL地址,非常简单易用。

APK Extractor UI风格简洁、无需ROOT、功能简单实用;可以提取安装应用程序或系统应用程序、更改提取应用程序的默认路径 、将应用程序转发到电子邮件 ;可以搜索应用程序、删除应用程序。

可以在Dex文件头隐藏另一个DEX数据并在运行时加载附带DEX数据。 构建非规范的Dex文件 通过反射调用DexFile类的方法加载附带DEX数据 通过反射实际调用DexFile的openDexFile方法 该种方式允许通过byte[]解析dex数据,而无须在再把DEX数据存储在设备的某个文件。 可以从安装APK文件、内存或dalvik-cache等读取dex数据。 该种方式将给自动化分析工具带来一个问题,自动化工具会按照dex格式处理DEX文件而不会处理附带的dex数据。需要特定的工具、16进制编辑器或手工提取嵌入的dex数据。 我们可以采用各种不同的方式增加嵌入数据的提取难度,比如: 对嵌入的DEX数据进行加密; 嵌入的DEX数据加密后在对其进行ZIP压缩; 使用native代码解密,直接从内存加载; 等等 该种隐藏方式可以通过判断Dex文件头长度是否大于0x70检测。

apk文件可以简单的通过压缩软件进行打开,打开后有如下目录:

1assets(文件夹,内部可能有文件夹,这里也有资源、配置文件)

2res(文件夹,resource的缩写,存放等数据,解压出来后可直接查看)

可能出现目录:

①anim(文件夹,存放动画资源,未反编译情况下为乱码)

②xml(文件夹,存放的xml文件,未反编译情况下为乱码)

③raw(文件夹,存放资源文件)

3classesdex(文件,很重要的文件,可通过dex2jarbat将其转换为jar再通过jd-gui查看)

4META-INF(文件夹,存放系统签名文件)

5resourcesarsc(文件,编译后的二进制资源文件的索引,用处不大,涉及汉化时考虑的文件)

6lib(文件夹)

①armeabi(子目录,存放的是一些so文件)

7AndroidManifestxml(xml文件,描述了应用的名字、版本、权限、引用的库文件等信息)

注:上诉中的乱码可以使用apktool进行反编译后查看,请勿反编译别人的程序用作盈利或者其他商业用途

以上就是关于如何查询apk更改过的参数全部的内容,包括:如何查询apk更改过的参数、如何查看Android应用apk的包名和入口Activity名称、如何提取已经安装在Android系统的apk等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9391405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存