【发布时间】:2015-07-10 20:12:40
【问题描述】:
/data/system/ 下有 packages.list,其中列出了所有已安装的软件包及其 <PKG_NAME>、<USER_ID> 和 <DATA_DIR>。但它没有我特别想要的,应用程序的标签。例如。 “Airdroid”是标题或通用名称,而com.sand.airdroid 是<PKG_NAME>。
我也知道有很多关于它的问题,我见过他们,但他们都这样做:
- 使用编程调用一些函数,
- 使用
aapt之类的工具解析Androidmanifest.xml,这需要首先转储.apk, - 他们中的一些人建议使用市场上的应用来完成这项工作。
但是,
- 我不会去 Android 编程,因为我不知道,
- 两者都不能在 PC 上使用需要转储 apk 的工具,因为我需要所有应用程序的名称列表,而且对于设备速度较慢的任何人来说,转储所有 apk 都不是很现实或不舒服,
- 无法安装应用,因为我不拥有该设备,因此我无权安装或删除任何应用
但如果用户可以通过编程获得这些名称,那么我相信,必须有一个集中式源或至少有一些文件具有所需的信息。否则,很难理解“设置 -> 应用程序”会在用户每次打开该 GUI 时解析所有这些 apk。
- 我查看了
/data/data/com.android.packageinstaller,但什么也没找到, - 我在 Logcat 的输出中看到我的启动器从“设置缓存”中检索这些名称(至少我理解它是这样做的),但我不知道下一步该做什么,而且这也不是通用方法。
- 我尝试分析与“包安装程序”、“包管理器”(source) 和pm 相关的源代码,但找不到线索。
那么,我在哪里可以找到 Android 中所需的信息?
注意:我可以使用 ADB,我对命令很熟悉,并且设备(Android 4.x、5.x)已获得 root 权限,但非常感谢非 root 方法。
谢谢!
【问题讨论】: