检测分身App

利用命令检测已安装第三方分身App


App被分身软件复制安装后,就可以随意拦截修改Api层东西,比如位置信息等,容易被人利用制造虚假信息。

这里选择检测是否安装分身软件来做相应程序处理,在利用系统PackageManager获取已安装第三方应用列表时发现,这些分身软件已经拦截剔除了自己的包名,所以改用命令直接获取:

public boolean isInstalledVirtualLocationPackage() {
        try {
            List 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;
    }

你可能感兴趣的:(检测分身App)