在安装我的应用程序之前,我想让它检查一下设备是否是根设备。
private static boolean isRooted()
return findBinary("su");
}
public static boolean findBinary(String binaryName) {
boolean found = false;
if (!found) {
String[] places = {"/sbin/", "/system/bin/", "/system/xbin/", "/data/local/xbin/",
"/data/local/bin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/"};
for (String where : places) {
if ( new File( where + binaryName ).exists() ) {
found = true;
break;
}
}
}
return found;
}
它工作正常。但我听说文件名“su”可以更改,也可以在非根设备中创建一个名为“su”的文件。在这种情况下,此源不是dependable.so。我想知道除了搜索“su”之外的其他方法来查找根设备。我使用了以下代码
Public static boolean checkRootMethod1()
{
String buildTags = android.os.Build.TAGS;
if (buildTags != null && buildTags.contains("test-keys")) {
return true;
}
return false;
}
它不是正常工作。对于根设备,它按预期工作。但对于一些非根设备,它也显示为根。由于输出是不同的设备,我找不到解决方案。。任何帮助将不胜感激
4条答案
按热度按时间cyvaqqii1#
如果你想限制你的应用在根设备中的使用,那么你必须考虑两点:
1)限制下载根设备中的应用程序。
2)限制根设备中应用的旁载。
按照以下步骤限制从Play商店下载:
1)转到播放商店控制台。
2)在左侧菜单中,转到发布管理。
3)在该对话框中,转到设备目录。
4)然后,您将获得3个选项卡选项,转到“Excluded devices”(排除的设备)。
5)您将获得一个指定排除规则的选项。单击“管理排除规则”。
6)您可以看到SafetyNet排除的选择器。选择选项:排除未通过基本完整性测试的设备以及未经谷歌认证的设备。
按照以下步骤限制应用程序的旁载:
1)使用以下方法获取API密钥:https://developer.android.com/training/safetynet/attestation.html#obtain-api-key
2)在Gradle文件中添加safetynet依赖项。
implementation 'com.google.android.gms:play-services-safetynet:17.0.0'
3)我已经把下面的代码放在我的BaseActivity中,我的其他活动扩展,所以如果一个黑客与根设备试图侧载,并试图进入任何活动,然后下面的代码执行。
SAFETY_NET_CHECK_API_KEY是在第1步中获得的密钥。
证明API返回一个JWS响应,如下所示:
JWS响应包含指示设备状态的ctsProfileMatch和basicIntegrity。
参考:https://developer.android.com/training/safetynet/attestation.html
rxztt3cl2#
pbpqsu0x3#
验证码:
见以下链接:-
Determine if running on a rooted device
Determining if an Android device is rooted programatically?
ergxz8rk4#
以前,我们使用SafetyNet Attestation API检测root/越狱设备。但是,此API现在已弃用,因此我们必须切换到Play Integrity API。
播放完整性API将提供以下信息
1.应用是否已从您的Google Play商店列表中安装?这有助于您确保您的用户未运行您的应用的篡改版本。
1.该应用程序是否获得许可,并且是用户在支付后从Play商店购买的,还是盗版?
1.设备本身是否为可信设备,或者是否为根设备、篡改设备或其他被视为不安全的设备。
安全网认证-https://developer.android.com/training/safetynet/attestation
播放完整性API -https://developer.android.com/google/play/integrity/overview