[Android] Android 學習筆記:檢視 APK 中的 AndroidManifest.xml

[Android] Android 學習筆記:檢視 APK 中的 AndroidManifest.xml

偶爾會想要看看別人的 APK 中有哪些 intent 可以使用,

這時候直接檢視 APK 中的 AndroidManifest.xml 就可以很快速的知道~

 

1. 使用 aapt 指令

網路上有人提供了方法,只要用 aapt 這個指令就可以:

aapt dump xmltree <apk_filename> AndroidManifest.xml

 

下面是一個執行的範例:

$ aapt dump xmltree test.apk AndroidManifest.xml

N: android=http://schemas.android.com/apk/res/android
  E: manifest (line=2)
    A: android:versionCode(0x0101021b)=(type 0x10)0x16
    A: android:versionName(0x0101021c)="1.2.5" (Raw: "1.2.5")
    A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1e
    A: android:compileSdkVersionCodename(0x01010573)="11" (Raw: "11")
......
      E: activity (line=91)
        A: android:screenOrientation(0x0101001e)=(type 0x10)0x1
        E: intent-filter (line=96)
          E: action (line=97)
            A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
          E: category (line=99)
            A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
        E: intent-filter (line=101)
          E: action (line=102)
            A: android:name(0x01010003)="android.intent.action.VIEW" (Raw: "android.intent.action.VIEW")
          E: category (line=104)
            A: android:name(0x01010003)="android.intent.category.DEFAULT" (Raw: "android.intent.category.DEFAULT")
          E: category (line=105)
            A: android:name(0x01010003)="android.intent.category.BROWSABLE" (Raw: "android.intent.category.BROWSABLE")
......

 

 2. 使用 APK Analyzer

Android SDK 現在內建了 apkanalyzer 這個工具,

可以用來檢視 AndroidManifest.xml:

apkanalyzer manifest print <apk_filename>

 

這是我在 Mac 上執行 apkanalyzer 的一個範例:

$ ~/Library/Android/sdk/tools/bin/apkanalyzer manifest print test.apk

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="22"
    android:versionName="1.2.5"
    android:compileSdkVersion="30"
    platformBuildVersionName="11">

    <application>
        <activity
            android:screenOrientation="1">

            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <intent-filter>
                <action
                    android:name="android.intent.action.VIEW" />
                <category
                    android:name="android.intent.category.DEFAULT" />
                <category
                    android:name="android.intent.category.BROWSABLE" />
                <data
                    android:scheme="hylib.tyml" />
            </intent-filter>
        </activity>
......

 

用 aapt 指令執行的話,可以看到整理過的資料,

但並不是原始的 AndroidManifest.xml 內容。

如果你習慣看 XML 的話,可以用 apkanalyzer 那個方法囉~

 

參考資料:

Analyze your build with APK Analyzer  |  Android Developers

android – How to view AndroidManifest.xml from APK file? – Stack Overflow

(本頁面已被瀏覽過 838 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料