CL2*_*L22 2 android android-manifest
此应用程序允许您浏览应用程序的清单文件。它是如何做到的?我在操作系统的 API 中找不到任何用于获取另一个应用程序清单文件的内容。
首先,您可以获得如下所示的应用程序列表:
PackageManager pm = getActivity().getPackageManager();
List<ApplicationInfo> apps = pm.getInstalledApplications(
PackageManager.GET_META_DATA | PackageManager.GET_SHARED_LIBRARY_FILES
);
Run Code Online (Sandbox Code Playgroud)
然后可以从以下位置获取 APK 的位置:
apps.get(x).publicSourceDir
Run Code Online (Sandbox Code Playgroud)
上面将有一个值,例如:
/data/app/com.example.someonesapp.apk
Run Code Online (Sandbox Code Playgroud)
从那里可以从 .apk 访问清单文件,如下所示:
try {
ZipFile apk = new ZipFile("/data/app/com.example.someonesapp.apk");
ZipEntry manifest = apk.getEntry("AndroidManifest.xml");
if (manifest != null){
Log.d("ManifestGetter", "Manifest size = " + manifest.getSize());
InputStream stream = apk.getInputStream(manifest);
// do stuff with the file here e.g. get contents
stream.close();
}
apk.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
最重要的是,不需要 root
| 归档时间: |
|
| 查看次数: |
2286 次 |
| 最近记录: |