给定一个 APK,是否可以确定它的目标是哪个版本的 Android 平台?
您可以提取 APK 并在清单文件中查找平台目标。
就像 Derek 上面说的
使用 Apktool反编译 apk 并检查清单版本
平台版本可以找到 给你
如果你想以编程的方式使用它,请尝试使用 软件包管理器类:
public PackageManager getPackageArchiveInfo(String archiveFilePath, int flags)
然后读取 ApplicationInfo 字段和 targetSdkVersion;
使用 aapt:
aapt
aapt list -a package.apk | grep SdkVersion
你会看到十六进制的版本号。例如:
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x3 A: android:targetSdkVersion(0x01010270)=(type 0x10)0xc
对于这个 apk,minSdkVersion是 0x3即3,而 targetSdkVersion是 0xc即12。
minSdkVersion
0x3
targetSdkVersion
0xc
使用 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
aapt dump badging my_apk_file.apk
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 都可以通过以下方式从您的设备中检索到:
$app
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>/中。
<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。 遵循以下指示:
apktool
使用 GitHub 回购来安装它 https://ibotpeaches.github.io/Apktool/。
安装后,运行以下命令-> apktool d file.apk
打开文件夹。
找到名为 apktool.yml的文件
apktool.yml
信息可以在 SDK 信息中找到: 图1 ,< a href = “ https://i.stack.imgur.com/drvc6.jpg”rel = “ nofollow noReferrer”> 图2