編輯:Android開發實例
前面walfred已經介紹了使用apktool對apk進行逆向編譯,通過apktool我們的確可以反編譯已經序列化後的AndroidManifest.xml和資源文件等等,但是有沒有一種快速有效的工具在不解包的前提下可以獲得某一apk的基本內容、權限以及該apk的基本信息呢?答案就是有,這個工具就是今天要介紹的aapt。
aapt簡介
aapt即Android Asset Packaging Tool,我們可以在SDK的platform-tools目錄下找到該工具。aapt可以查看、 創建、 更新ZIP格式的文檔附件(zip, jar, apk)。 也可將資源文件編譯成二進制文件,盡管你可能沒有直接使用過aapt工具,但是build scripts和IDE插件會使用這個工具打包apk文件構成一個Android 應用程序。
主要用法
下面的這個參數列表基本向我們展示了如何使用aapt以及aapt的基本功能了。
代碼如下:
aapt l[ist]:列出資源壓縮包裡的內容。
aapt d[ump]:查看APK包內指定的內容。
aapt p[ackage]:打包生成資源壓縮包。
aapt r[emove]:從壓縮包中刪除指定文件。
aapt a[dd]:向壓縮包中添加指定文件。
aapt v[ersion]:打印aapt的版本。
使用aapt
這裡我就用一個應用來做測試sample,應用為:應用匯應用市場。
列舉出apk中的所有文件
代碼如下:
walfred@ubuntu:~/lab$ aapt l yingyonghui.apk
當然這個apk的內容太多,一張紙顯示不了所有的內容,你可以將其重定向到一個專門的文件中去,這樣查看也方便。
代碼如下:
walfred@ubuntu:~/lab$ aapt l yingyonghui.apk > yingyonghui.txt
查看apk的基本信息
aapt最實用的功能,通過d(ump)參數可以查看該apk的基本信息以及權限等,但該參數還有一個value,可以選用的value值如下:
d參數的語法如下:
代碼如下:
aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]
values:
badging Print the label and icon for the app declared in APK.
permissions Print the permissions from the APK.
resources Print the resource table from the APK.
configurations Print the configurations in the APK.
xmltree Print the compiled xmls in the given assets.
xmlstrings Print the strings of the given compiled xml assets.
查看基本信息
代碼如下:
walfred@ubuntu:~/lab$ aapt d badging yingyonghui.apk
查看應用權限
代碼如下:
walfred@ubuntu:~/lab$ aapt d permissions yingyonghui.apk
結語
怎麼樣,aapt這個小工具本領還真不小吧,當我們在判斷一個apk是否有惡意行為時,我們第一步可以考慮使用aapt這個tool哦,我們可以分析這個apk的權限列表,一旦有部分權限過大,比如發送短信、讀取聯系人信息等權限時,就可以進一步分析這個apk了。
在前面的一篇文章中,簡單的介紹了一下如何實現軟鍵盤不自動彈出,使用的方法是設置android:windowSoftInput
相信對於手機的時間日期設置大家一定都不陌生吧,今天舉一個關於時間日期設置的示例,其中有些許不完善之處,例如如何使設置的時間日期和手機系統同步等。感興趣的讀者可以根
Android有一個內置的麥克風,通過它可以捕獲音頻和存儲,或在手機進行播放。有很多方法可以做到這一點,但最常見的方法是通過MediaRecorder類。Android提
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個