裝在Android手機中,用此apk看系統中已安裝應用的AndroidManifest.xml文件:
View Codeprotected boolean configForPackage(String packageName) {
if (packageName == null || packageName == "")
packageName = "android";
AssetManager initAM = mCurAm;
Resources initRes = mCurResources;
try {
mCurAm = createPackageContext(packageName, 0).getAssets();
mCurResources = new Resources(mCurAm, getResources()
.getDisplayMetrics(), null);
} catch (NameNotFoundException name) {
Toast.makeText(this, "Error, couldn't create package context:"
+ name.getLocalizedMessage(), Toast.LENGTH_LONG);
mCurAm = initAM;
mCurResources = initRes;
return false;
} catch (RuntimeException unexpected) {
Log.e(MANIFEST_TAG, "error configuring for package:" + packageName
+ "" + unexpected.getMessage());
mCurAm = initAM;
mCurResources = initRes;
return false;
}
return true;
}
protected void updateView() {
this.mOut.setText("");
try {
XmlResourceParser xml = null;
xml = mCurAm.openXmlResourceParser("AndroidManifest.xml");
this.mInput.setText("/sdcard/" + getPkgName() + ".txt");
this.mOut.append(getXMLText(xml, mCurResources));
} catch (IOException ioe) {
this.showError("Reading XML", ioe);
}
}
把apk放在PC中,配置好jdk環境后輸入:
java –jar apktool.jar file_path.apk
嫌麻煩的可用第三方集成界面工具:APK改之理。
aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]
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
查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各種詳細信息
aapt dump badging
查看權限
aapt dump permissions
查看資源列表
aapt dump resources
查看apk配置信息
aapt dump configurations
查看指定apk的指定xml文件。
a.以樹形結構輸出的xml信息。
aapt dump xmltree res/***.xml
如:aapt dump xmltree AndroidManifest.xml可查看應用的該文件
b. 輸出xml文件中所有的字符串信息。
aapt dump xmlstrings res/***.xml
java -jar APKParser.jar 可輸出格式化后的該應用的AndroidManifest.xml文件