利用命令檢測(cè)已安裝第三方分身App
App被分身軟件復(fù)制安裝后,就可以隨意攔截修改Api層?xùn)|西,比如位置信息等,容易被人利用制造虛假信息。
這里選擇檢測(cè)是否安裝分身軟件來做相應(yīng)程序處理,在利用系統(tǒng)PackageManager獲取已安裝第三方應(yīng)用列表時(shí)發(fā)現(xiàn),這些分身軟件已經(jīng)攔截剔除了自己的包名,所以改用命令直接獲?。?/p>
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;
}