Android: 如何找到 APK 的目标平台版本?

给定一个 APK,是否可以确定它的目标是哪个版本的 Android 平台?

59894 次浏览

您可以提取 APK 并在清单文件中查找平台目标。

就像 Derek 上面说的

使用 Apktool反编译 apk 并检查清单版本

平台版本可以找到 给你

如果你想以编程的方式使用它,请尝试使用 软件包管理器类:

public PackageManager getPackageArchiveInfo(String archiveFilePath, int flags)

然后读取 ApplicationInfo 字段和 targetSdkVersion;

使用 aapt:

aapt list -a package.apk | grep SdkVersion

你会看到十六进制的版本号。例如:

  A: android:minSdkVersion(0x0101020c)=(type 0x10)0x3
A: android:targetSdkVersion(0x01010270)=(type 0x10)0xc

对于这个 apk,minSdkVersion0x3即3,而 targetSdkVersion0xc即12。

使用 Apktool

java -jar apktool.jar d app.apk

然后查看生成的 apktool.yml 文件:

sdkInfo:
minSdkVersion: '11'
targetSdkVersion: '17'

您可以将 SDK 版本与 Android 版本 给你进行匹配。在上面的例子中,Android 的最小版本是3.0,目标版本是4.2。

如果使用 Nautilus,则可以为 APK 文件添加列提供程序和属性页提供程序。这将提供大量信息,包括 SdkVersion。

在这个链接上解释了步骤: http://bernaerts.dyndns.org/linux/76-gnome/324-gnome-nautilus-apk-column-property-provider-extension

干杯。

简单地使用 aapt dump badging my_apk_file.apk来获得大量关于您的 apk 的信息。 分版本的 grep 过滤器 aapt dump badging my_apk_file.apk|grep Version

输出与 $ANDROID _ SDK _ ROOT/build-tools/30.0.3/aapt:

package: name=... versionCode=... versionName=... compileSdkVersion='29' compileSdkVersionCodename='10'
sdkVersion:'11'
targetSdkVersion:'29'

任何已安装的应用程序 $app(例如 Com.google.android.apps.docs)的 apk 都可以通过以下方式从您的设备中检索到:

adb pull $(adb shell dumpsys package $app | grep path: | cut -c11-) $app.apk

如果你没有 grep 你可以用

aapt list -a package.apk >file.txt

并在 file.txt 中搜索 minSdkVersion 和 targetSdkVersion。

如果你想从你的移动设备上找到这些信息,你可以安装 我的 APK应用程序,它可以给你很好的应用程序信息 你可以在这个 https://play.google.com/store/apps/details?id=com.andatsoft.myapk.fwa&hl=en 找到它

你想要得到这些信息的应用程序,必须安装在你的移动设备上,或者你必须在你的移动设备上安装应用程序。

你可以使用 http://www.javadecompilers.com/apk反编译文件 apk,你可以在 Mandifest 找到它

您可以运行以下命令来获取 API 级别(整数) :

aapt dump badging "your_apk.apk" | awk '/targetSdkVersion/{gsub("targetSdkVersion:''|''","");  print $1}'

如果它是针对 KitKat (API 19)编译的,那么您将得到如下输出:

19

Aapt 位于文件夹 <Android-Sdk>/build-tools/<build-tools-version>/中。

你可以使用 apkanalyzer,它是包含在 Android SDK 工具中的,这里有更多的信息 https://developer.android.com/studio/command-line/apkanalyzer

打印最小 SDK 版本。

apkanalyzer -h manifest min-sdk myapk.apk

打印目标 SDK 版本

apkanalyzer -h manifest target-sdk myapk.apk

另一个灌木丛直到功能:

function android-target-sdk-version {
aapt list -a $1 | grep targetSdkVersion | grep -o '....$' | awk '{print $1+0}'
}

获得 APK 信息的最快方法是使用这个在线工具: Https://www.sisik.eu/apk-tool

在我的例子中,我在 Android Studio 上打开了 apk 文件。所以我可以在 AndroidManifest.xml检查机器人的版本。

要查找 APK 文件的平台目标,请使用 apktool。 遵循以下指示:

  1. 使用 GitHub 回购来安装它 https://ibotpeaches.github.io/Apktool/

  2. 安装后,运行以下命令-> apktool d file.apk

  3. 打开文件夹。

  4. 找到名为 apktool.yml的文件

  5. 信息可以在 SDK 信息中找到: 图1 ,< a href = “ https://i.stack.imgur.com/drvc6.jpg”rel = “ nofollow noReferrer”> 图2