我想实现安全网API来验证设备状态,我发现的最简单的方法之一是一个安全网助手类,它使实现变得如此简单,github.com/scottyab/safetynethelper。我从safetynetlib中复制了所有的类,并将它们添加到代码中。我遵循植入的方法,但是我得到了一个错误代码。
final SafetyNetHelper safetyNetHelper = new SafetyNetHelper(BuildConfig.API1);
public boolean safetynet()
{
safetyNetHelper.requestTest(getApplicationContext(), new SafetyNetHelper.SafetyNetWrapperCallback() {
@Override
public void error(int errorCode, String msg) {
//handle and retry depending on errorCode
}
@Override
public void success(boolean ctsProfileMatch) {
if(ctsProfileMatch){
safetynet=true;
}else{
safetynet=false;
}
}
});
return safetynet;
}`智能D/SafetyNetHelper: apkDigest:IQUb5ULuwdbqOwpQn3jZev2EGXcjtk/yGYUvk1c64F8= 04-20 22:32:51.028 28741-28741/com.aashish.smart V/SafetyNetHelper: decodedJWTPayload json:{"nonce":"tnd1YpjORIX4teJEd7LuigDWNhWkF6s4T7Ay811BxsM=",“时间戳”:1461171774655,“"apkDigestSha256":"IQUb5ULuwdbqOwpQn3jZev2EGXcjtk/yGYUvk1c64F8=",”:"apkPackageName":"com.aashish.smart","ctsProfileMatch":true,“ctsProfileMatch”:“CQ6MIM+qMkMv”,"apkCertificateDigestSha256":"PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w="} 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper:无效apkCertificateDigest,本地/预期= MIIDizCCAnOgAwIBAgIEPIOxdDANBgkqhkiG9w0BAQsFADB2MQswCQYDVQQGEwJJTjETMBEGA1UECBMKVGFtaWwgTmFkdTEQMA4GA1UEBxMHQ2hlbm5haTEOMAwGA1UEChMFU21hcnQxEzARBgNVBAsTClRlY2hpbmljYWwxGzAZBgNVBAMTEkFhc2hpc2ggVml2ZWthbmFuZDAeFw0xNjA0MTkxMzM2MzdaFw00MTA0MTMxMzM2MzdaMHYxCzAJBgNVBAYTAklOMRMwEQYDVQQIEwpUYW1pbCBOYWR1MRAwDgYDVQQHEwdDaGVubmFpMQ4wDAYDVQQKEwVTbWFydDETMBEGA1UECxMKVGVjaGluaWNhbDEbMBkGA1UEAxMSQWFzaGlzaCBWaXZla2FuYW5kMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnbvJLdKZi8Nf96wNSVdJR/bh7Y0s6jv7AFQGcrR73rMTB/7EJyH9hbl4L5+U1mrfVodM+J3s/A7LD1gXnMwhsV46tV9ZijkVwT9guxXnUaWPSv2khh5tvpJ9Sj9kyUcOyelDz5iIhK5vP2ipx6ktETIeXv97iKKmHp3vJ7/gFAVsVtkIRQ+6hLo25AN+OPZE9qH8TsnCqIK+OSd+bF56/dMlhhE63Sy4ixEKZIC5b3RkUjJbuC67GS7hgq0EwoVwJ1lX99WgoLAYJq7hQm1FB3Ns+x1rkZ5+XYxt9ZCdUJbJQAFa15t9SumHDp3/yB2uaMtvju6xFTpkoaQo6cbaZwIDAQABoyEwHzAdBgNVHQ4EFgQUZnYr1WkTZPKm5/g783K/vDwrr8EwDQYJKoZIhvcNAQELBQADggEBAAx5ToAMW6nlkXwQ5S3oIeQ66TCzBJtLjHQ>IG6eWNkmNZYXuEj14nqWrSM+AniDcW3U/NwROXOERZfvtBiiwuy0Oc8GG31VmYAd6jgdkfsXfd+96wZxqH8PRtq3m1tjXYGb9Kg1CM1oDdN5H6xtqjU24nSpQEWWs6THuWHA1LEsAnnO0JM3lm0ltBOuIGJtWBd5S6tHMgi4U+m1z/oJAW0HAyWwbuwy7/YP1uEKlEEM669bUYG6iQ4dE3cIB5guZF2qMjwPKscW9bRjoviTgJUGmmVRdpd1Dk/OOZFUEK4A+ii5c7SLW2e//QoN3WV30zNHJArCvFfTGRbeZpwOl4Z4= 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper:无效apkCertificateDigest,响应= PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w= 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier:验证JWS消息的问题:https://www.googleapis.com/androidcheck/v1/attestations/verify?key=A....................................0 java.io.FileNotFoundException:https://www.googleapis.com/androidcheck/v1/attestations/verify?key=A.....................................0在com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:238) at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)在com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) at com.aashish.smart.AndroidDeviceVerifier$AndroidDeviceVerifierTask.doInBackground(AndroidDeviceVerifier.java:113) at com.aashish.smart.AndroidDeviceVerifier$AndroidDeviceVerifierTask.doInBackground(AndroidDeviceVerifier.java:82) at android.os.AsyncTask$2.call(AsyncTask.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:237)在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)
完整日志: pastebin(dot)com/YXkS7NgW
有人能帮我找出我找不到的错误吗?还是有其他教程可以让我使用安全网API?
发布于 2016-06-30 14:09:35
我也在研究这方面的解决方案,目前我已经解决了网址点击的"FileNotFoundException“。
解决方案:如果没有Google控制台,您应该在Google控制台上创建一个项目,并启用Android设备验证API。
创建“服务器密钥”并将IP字段保留为空白,以便能够从移动应用程序连接。
这将起作用(:
我还在研究如何解决apkCertificateDigest错配问题
https://stackoverflow.com/questions/36751791
复制相似问题