2

我想实现安全网 API 来验证设备状态我发现的最简单的方法之一是安全网帮助器类,它使实现变得如此简单 github.com/scottyab/safetynethelper。我从 securitynetlib 复制了所有类并将它们添加到我的代码中。我按照植入的方法,但我得到一个错误代码
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;
  }`

04-20 22:32:50.950 28741-28741/com.aashish.smart D/SafetyNetHelper:apkDigest:IQUb5ULuwdbqOwpQn3jZev2EGXcjtk/yGYUvk1c64F8= 04-20 22:32:51.028 28741-28741/tyNetSafety.com连接的服务 04-20 22:32:51.028 28741-28741/com.aashish.smart V/SafetyNetHelper:运行 SafetyNet.API 测试 04-20 22:32:54.499 28741-28741/com.aashish.smart D/SafetyNetResponse: decodedJWTPayload json:{"nonce":"tnd1YpjORIX4teJEd7LuigDWNhWkF6s4T7Ay811BxsM=","timestampMs":1461171774655,"apkPackageName":"com.aashish.smart","apkDigestSha256":"IQUb5ULuwdbqOwpQn3jZev2EGXcjtk/yGYUvk1c64F8=","ctsProfileMatch":true,"extension" :"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: invalid apkCertificateDigest, response = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w=] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier:验证 JWS 消息时出现问题:IG6eWNkmNZYXuEj14nqWrSM+AniDcW3U/NwROXOERZfvtBiiwuy0Oc8GG31VmYAd6jgdkfsXfd+96wZxqH8PRtq3m1tjXYGb9Kg1CM1oDdN5H6xtqjU24nSpQEWWs6THuWHA1LEsAnnO0JM3lm0ltBOuIGJtWBd5S6tHMgi4U+m1z/oJAW0HAyWwbuwy7/YP1uEKlEEM669bUYG6iQ4dE3cIB5guZF2qMjwPKscW9bRjoviTgJUGmmVRdpd1Dk/OOZFUEK4A+ii5c7SLW2e//QoN3WV30zNHJArCvFfTGRbeZpwOl4Z4=] 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper: invalid apkCertificateDigest, response = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w =] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier:验证 JWS 消息时出现问题:IG6eWNkmNZYXuEj14nqWrSM+AniDcW3U/NwROXOERZfvtBiiwuy0Oc8GG31VmYAd6jgdkfsXfd+96wZxqH8PRtq3m1tjXYGb9Kg1CM1oDdN5H6xtqjU24nSpQEWWs6THuWHA1LEsAnnO0JM3lm0ltBOuIGJtWBd5S6tHMgi4U+m1z/oJAW0HAyWwbuwy7/YP1uEKlEEM669bUYG6iQ4dE3cIB5guZF2qMjwPKscW9bRjoviTgJUGmmVRdpd1Dk/OOZFUEK4A+ii5c7SLW2e//QoN3WV30zNHJArCvFfTGRbeZpwOl4Z4=] 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper: invalid apkCertificateDigest, response = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w =] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier:验证 JWS 消息时出现问题:响应 = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w=] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier:验证 JWS 消息时出现问题:响应 = [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) 在 com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) 在 com.android.okhttp.internal .huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) 在 com.aashish.smart.AndroidDeviceVerifier$AndroidDeviceVerifierTask.doInBackground(AndroidDeviceVerifier.java:113) 在 com.aashish.smart。AndroidDeviceVerifier$AndroidDeviceVerifierTask.doInBackground(AndroidDeviceVerifier.java:82) 在 android.os.AsyncTask$2.call(AsyncTask.java:295) 在 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) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:第588章)

完整日志:pastebin(dot)com/YXkS7NgW
有人可以帮我找出我无法找到的错误。或者是否有任何其他教程可供我使用安全网 API

4

1 回答 1

0

我也在为此研究解决方案,目前我已经解决了 URL hit 的“FileNotFoundException”。

解决方案:如果您没有项目,则应在 Google API 控制台上创建一个项目并启用 Android 设备验证 API。

创建“服务器密钥”并将 IP 字段留空,以便能够从移动应用程序连接。

这样就可以了(:

我仍在研究如何解决 apkCertificateDigest 不匹配问题

于 2016-06-30T14:09:35.183 回答