Android : APK가 대상으로하는 플랫폼 버전을 찾는 방법은 무엇입니까?
APK가 주어지면 어떤 버전의 Android 플랫폼을 대상으로 하는지를 결정할 수 있습니까?
APK를 추출하고 매니페스트 파일에서 플랫폼 대상을 찾을 수 있습니다.
사용 aapt
:
aapt list -a package.apk | grep SdkVersion
16 진수로 버전 번호가 표시됩니다. 예 :
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x3
A: android:targetSdkVersion(0x01010270)=(type 0x10)0xc
이 APK를 들어, minSdkVersion
이다 0x3
, 즉 3, targetSdkVersion
이다 0xc
예 (12).
apktool 사용
java -jar apktool.jar d app.apk
그런 다음 생성 된 apktool.yml 파일에서이를 확인합니다.
sdkInfo:
minSdkVersion: '11'
targetSdkVersion: '17'
여기 에서 SDK 버전을 Android 버전과 일치시킬 수 있습니다 . 위의 예에서 최소 Android 버전은 3.0이고 대상 버전은 4.2입니다.
간단히 사용 aapt dump badging my_apk_file.apk
하여 APK에 대한 많은 정보를 얻으십시오. 버전 별 grep 필터aapt dump badging my_apk_file.apk|grep Version
산출
sdkVersion:'9'
targetSdkVersion:'24'
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
데릭이 위에서 말한 것처럼
apktool 을 사용하여 apk를 디 컴파일하고 매니페스트 버전을 확인하십시오.
grep이 없으면 다음을 사용할 수 있습니다.
aapt list -a package.apk >file.txt
file.txt에서 minSdkVersion 및 targetSdkVersion을 검색합니다.
다음 명령을 실행하여 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>/
있습니다.
If you want to find these info from your mobile device you can install My APK app which gives you good information about apps You can get it at https://play.google.com/store/apps/details?id=com.andatsoft.myapk.fwa&hl=en
The app which you want to have these information about, must either installed on your mobile device or you must have the app apk on your mobile.
if you want it programmatically try use PackageManager class:
public PackageManager getPackageArchiveInfo(String archiveFilePath, int flags)
then read ApplicationInfo field and targetSdkVersion in it;
If you are using Nautilus, you can add a column provider and a property page provider for APK files. This will provide lots of informations, including SdkVersion.
Steps are explained on this link : http://bernaerts.dyndns.org/linux/76-gnome/324-gnome-nautilus-apk-column-property-provider-extension
Cheers.
You can use http://www.javadecompilers.com/apk to decomplier file apk and you can find it in Mandifest
Another bush util function:
function android-target-sdk-version {
aapt list -a $1 | grep targetSdkVersion | grep -o '....$' | awk '{print $1+0}'
}
'Program Tip' 카테고리의 다른 글
WPF의 dataGridCells에 패딩 설정 (0) | 2020.12.14 |
---|---|
RSpec 테스트 후 ActionMailer :: Base.deliveries 지우기 (0) | 2020.12.14 |
PHP의 변수에 문자열을 추가 할 수 있습니까? (0) | 2020.12.14 |
세션을 나열하려고 할 때 tmux에서 "서버에 연결하지 못했습니다"메시지가 표시되는 이유는 무엇입니까? (0) | 2020.12.14 |
Pandas Barplot에서 x 축 눈금 레이블을 회전하는 방법 (0) | 2020.12.14 |