2016-04-20 61 views
2

我想实施安全网API来验证设备状态我发现最简单的方法之一是安全网助手类,它使实现如此简单github.com/scottyab/safetynethelper。 我从safetynetlib中复制了所有的类,并将它们添加到我的代码中。我跟着用于植入的方法,但我得到一个错误代码
final SafetyNetHelper safetyNetHelper = new SafetyNetHelper(BuildConfig.API1);
Safetynet API帮助程序错误

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/com.aashish.smart V/SafetyNetHelper:Google play services connected 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:{“no NCE “:” tnd1YpjORIX4teJEd7LuigDWNhWkF6s4T7Ay811BxsM = “ ”timestampMs“:1461171774655 ”apkPackageName“: ”com.aashish.smart“, ”apkDigestSha256“: ”IQUb5ULuwdbqOwpQn3jZev2EGXcjtk/yGYUvk1c64F8 =“, ”ctsProfileMatch“:真, ”扩展“:” + CQ6MIM qMkMv”, “apkCertificateDigestSha256”:[ “PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w =”]} 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper:无效apkCertificateDigest,本地/预期= [MIIDizCCAnOgAwIBAgIEPIOxdDANBgkqhkiG9w0BAQsFADB2MQswCQYDVQQGEwJJTjETMBEGA1UECBMKVGFtaWwgTmFkdTEQMA4GA1UEBxMHQ2hlbm5haTEOMAwGA1UEChMFU21hcnQxEzARBgNVBAsTClRlY2hpbmljYWwxGzAZBgNVBAMTEkFhc2hpc2ggVml2ZWthbmFuZDAeFw0xNjA0MTkxMzM2MzdaFw00MTA0MTMxMzM2MzdaMHYxCzAJBgNVBAYTAklOMRMwEQYDVQQIEwpUYW1pbCBOYWR1MRAwDgYDVQQHEwdDaGVubmFpMQ4wDAYDVQQKEwVTbWFydDETMBEGA1UECxMKVGVjaGluaWNhbDEbMBkGA1UEAxMSQWFzaGlzaCBWaXZla2FuYW5kMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnbvJLdKZi8Nf96wNSVdJR/bh7Y0s6jv7AFQGcrR73rMTB/7EJyH9hbl4L5 + U1mrfVodM + J3S/A7LD1gXnMwhsV46t V9ZijkVwT9guxXnUaWPSv2khh5tvpJ9Sj9kyUcOyelDz5iIhK5vP2ipx6ktETIeXv97iKKmHp3vJ7/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:problem验证JWS消息E: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) 在java.lang.Thread.run(Thread.java:818)

完整的日志:引擎收录(点)的COM/YXkS7NgW
有人可以帮我找出是什么错误我我无法找到。或是否有任何其他的教程了那里我就安全网API

回答

0

我也研究了这个解决方案,目前我已经解决了“FileNotFoundException异常”的URL命中工作。

分辨率: 您应该创建谷歌API控制台上的一个项目,如果你没有一个,使Android设备验证API。

创建“服务器密钥”,并留下IP领域的空白,以便能够从移动应用程序连接。

这将做到这一点(:

我还在努力研究如何解决apkCertificateDigest不匹配问题