From 170d5e45246fd816f40a651d2f7de49228e22d1a Mon Sep 17 00:00:00 2001 From: Marvin W Date: Wed, 8 Feb 2017 14:13:34 +0100 Subject: [PATCH] Make SafetyNet configurable --- extern/UnifiedNlp | 2 +- .../src/main/AndroidManifest.xml | 7 +- .../java/org/microg/gms/snet/Attestation.java | 16 ++-- .../gms/snet/SafetyNetClientServiceImpl.java | 15 +++- .../org/microg/gms/snet/SafetyNetPrefs.java | 80 ++++++++++++++++++ .../org/microg/gms/ui/SafetyNetFragment.java | 84 +++++++++++++++++++ .../org/microg/gms/ui/SettingsActivity.java | 21 +++-- .../src/main/res/drawable/certificate.xml | 13 +++ .../src/main/res/values/strings.xml | 20 +++++ .../src/main/res/xml/preferences_snet.xml | 53 ++++++++++++ .../src/main/res/xml/preferences_start.xml | 8 ++ 11 files changed, 300 insertions(+), 19 deletions(-) create mode 100644 play-services-core/src/main/java/org/microg/gms/snet/SafetyNetPrefs.java create mode 100644 play-services-core/src/main/java/org/microg/gms/ui/SafetyNetFragment.java create mode 100644 play-services-core/src/main/res/drawable/certificate.xml create mode 100644 play-services-core/src/main/res/xml/preferences_snet.xml diff --git a/extern/UnifiedNlp b/extern/UnifiedNlp index ea09d3ff..c161d40f 160000 --- a/extern/UnifiedNlp +++ b/extern/UnifiedNlp @@ -1 +1 @@ -Subproject commit ea09d3ff063c8ad32db492343bd640c3ac53bf2c +Subproject commit c161d40f1bfe1c185b67d8120e4d51339d31e280 diff --git a/play-services-core/src/main/AndroidManifest.xml b/play-services-core/src/main/AndroidManifest.xml index 254ee9b8..f79dc5cf 100644 --- a/play-services-core/src/main/AndroidManifest.xml +++ b/play-services-core/src/main/AndroidManifest.xml @@ -383,8 +383,8 @@ @@ -426,6 +426,11 @@ android:label="@string/service_name_mcs" android:theme="@style/Theme.AppCompat.Settings"/> + + + + + + \ No newline at end of file diff --git a/play-services-core/src/main/res/values/strings.xml b/play-services-core/src/main/res/values/strings.xml index d369cc4f..93eba842 100644 --- a/play-services-core/src/main/res/values/strings.xml +++ b/play-services-core/src/main/res/values/strings.xml @@ -55,6 +55,10 @@ This can take a couple of minutes." Google device registration Google Cloud Messaging + Google SafetyNet + + Disabled + Enabled Registers your device to Google services and creates a unique device identifier. microG strips identifying bits other than your Google account name from registration data. Google Cloud Messaging is a push notification provider used by many third-party applications. To use it you must enable device registration. @@ -138,4 +142,20 @@ This can take a couple of minutes." Wi-Fi Roaming Other networks + + Google SafetyNet is a device certification system, ensuring that the device is properly secured and compatible with Android CTS. Some applications use SafetyNet for security reasons or as a prerequisite for tamper-protection.\n\nmicroG GmsCore contains a free implementation of SafetyNet, but the official server requires SafetyNet requests to be signed using the proprietary DroidGuard system. A sandboxed version of DroidGuard is available as a separate “DroidGuard Helper” app. + + Configuration + + Disabled + Completely disable SafetyNet + Use official server + Requires an unrooted system, device registration enabled and microG DroidGuard Helper installed + Use third-party server + Third-party servers might be able to reply to SafetyNet requests without DroidGuard signature + Custom server URL + Full URL of the third-party server answering SafetyNet attestation requests + + Test + Try SafetyNet attestation diff --git a/play-services-core/src/main/res/xml/preferences_snet.xml b/play-services-core/src/main/res/xml/preferences_snet.xml new file mode 100644 index 00000000..46816e98 --- /dev/null +++ b/play-services-core/src/main/res/xml/preferences_snet.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/play-services-core/src/main/res/xml/preferences_start.xml b/play-services-core/src/main/res/xml/preferences_start.xml index 72721933..f7dd98de 100644 --- a/play-services-core/src/main/res/xml/preferences_start.xml +++ b/play-services-core/src/main/res/xml/preferences_start.xml @@ -41,6 +41,14 @@ android:targetClass="org.microg.gms.ui.GcmFragment$AsActivity" android:targetPackage="com.google.android.gms"/> + + +