利用命令检测已安装第三方分身App
App被分身软件复制安装后,就可以随意拦截修改Api层东西,比如位置信息等,容易被人利用制造虚假信息。
这里选择检测是否安装分身软件来做相应程序处理,在利用系统PackageManager获取已安装第三方应用列表时发现,这些分身软件已经拦截剔除了自己的包名,所以改用命令直接获取:
public boolean isInstalledVirtualLocationPackage() {
try {
List<String> virtualLocationPackages = new ArrayList<>();
//分身App列表
virtualLocationPackages.add("这里写包名");
Process process = Runtime.getRuntime().exec("pm list package -3");
BufferedReader bis = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null;
while ((line = bis.readLine()) != null) {
for (String packageName : virtualLocationPackages) {
if (packageName.equals(line.substring(8, line.length()))) {
return true;
}
}
}
} catch (IOException e) {
}
return false;
}
网友评论