RELEASE NOTES ------------------------------------------------------------------------------ Shield for Android - Version 5.0.0 - 2022-09-16 Highlights: ------------------------------------------------------------------------------ - Shield 5.0.0 supports Android 13 Supported platforms: ------------------------------------------------------------------------------ - Shield is supported on Android 4.4 (API 19) up to Android 13 (API 33). - The Shielder tool is supported on 64-bit Java 11 or 17 on Windows 10, Mac OSX (10.9+) and Ubuntu Linux LTS 20.04 or 22.04. - ShieldGradlePlugin version 2.0 is supported. Changes: ------------------------------------------------------------------------------ - Shielder no longer supports Java 8, the minimal supported Java version is Java 11 (LTS), but Java 17 (LTS) is recommended. - Shield no longer supports Android 4.1 - 4.3 (API 16, 17, 18), the minimal supported Android version is Android 4.4 (API 19). Shielder command line option changes: * "--exclude path/to/exclude.cfg" has been deprecated. This configuration file is used to define "Shielder rules" on how the Shielder tool protects the application. "Excluding" a class from binding or obfuscation is only one use case for this configuration, so we changed the name of the option to: "--rules path/to/rules.cfg" * "--obfuscate on" has been deprecated. Instead of using this command line option, it is recommended to use a Shielder rules configuration file which enables class name obfuscation for selected packages. See the Shielder Usage documentation for more information. * The default output name is now prefixed with "shielded-", that is, for java -jar Shielder.jar app.apk Shielder will write the shielded application to "shielded-app.apk" in the same directory as the application itself. If you need to use a different output name, specify that by using the command line option "--output": java -jar Shielder.jar app.apk --output app-with-shield.apk Shield configuration changes: The following deprecated configuration options have been removed: * "exitOnEmulatorURL" - there was no guarantee that this URL was triggered even though the application may have been running in an emulator. It was recommended to not use this option. * "exitOnRepackagingURL" - there was no guarantee that this URL was triggered even though the application may have been repackaged. It was recommended to not use this option. * "exitOnScreenMirroring", "exitOnScreenMirroringURL", these options have been replaced by "blockScreenMirroring". There is no reason to exit the application when a potential mirrored screen can be blocked. The following default values have changed: * "exitOnRooting" is now false by default - this was previously true. If you want to exit the application if it is run on a rooted device, then you must explicitly set this to "true": * "checkTrustedKeyboard" is now true - this was previously set to false. Since there are more attackers that sneak into the system by installing themselves as a keyboard, it is important to only trust well known keyboards. You can configure additional packages as trusted keyboards using the "addTrustedKeyboardSigner" configuration option. In the provided config-template.xml you find some examples of well known keyboards. ShieldSDK changes: * SHAND-3029: In module ShieldSDK-callbacks, package no.promon.shield.callbacks: In class "CallbackManager" the methods - static void setExtendedObserver(Context, ExtendedObserver) - static void removeObserver() have been deprecated. Instead use the new methods - static void addObserver(Context, ExtendedObserver). Note: this allows to add more than one callback observer. - static void removeObserver(ExtendedObserver) Note: to remove an observer instance, you need to pass the observer instance that you want to remove as an argument. * SHAND-1665: In module ShieldSDK-callbacks, package no.promon.shield.callbacks: If Shield is configured to check for trusted screen readers Then the callback data ScreenreaderData has now information about all detected active, untrusted screenreaders. Previously the callback data reported only one of the detected active, untrusted screenreaders. Additional new features: * SHAND-3025: Enhanced the hooking framework checks to detect Xposed Module. Shield Gradle Plugin: ------------------------------------------------------------------------------ Shield Gradle Plug-in can be downloaded from: https://dl.promon.no/pub/android/gradle/doc/shield-gradle-plugin-2.0.1.pdf https://dl.promon.no/pub/android/gradle/jar/shield-gradle-plugin-2.0.1.jar Known limitations: ------------------------------------------------------------------------------ - Android App Bundles: Shielder's support for Android App Bundles with multiple modules does not work for apps with minSdk set to Android 4.x or lower (<21) In those cases, building an APK is a better option. The Shield Gradle plug-in version 1.x does not support building app bundles, in those cases Shield Gradle plug-in version 2 is needed. - Magisk and root hider tools on new Android versions Root hider tools such as Magisk Hide is designed to hide the fact that the device is compromised (rooted). Android has been increasingly restricted in what can be inspected and observed of the system from inside an app. This means that a rooted system with a root hider tool can be hard to detect due to missing privileges. On Android 8+, Shield may not able to reliably detect a rooted device with Magisk Hide depending on the version of these tools. - The SecureEditText in-app keyboard has focus problems on dialog windows on tablet devices. Tested devices: ------------------------------------------------------------------------------ Asus Nexus 7 (Android 4.4.4 - KitKat) Asus Nexus 7 (Android 5.0 - Lollipop) Asus ROG Phone (Android 8.1 - Oreo) Asus Zenfone 2 (Android 5.0 - Lollipop) Asus Zenfone 4 (Android 7.1.1 - Nougat) Asus Zenfone4 SelfiePro (Android 7.1 - Nougat) Asus ZenPad 10 (Android 7.0 - Nougat) Google Pixel 2 (Android 10 - Q) Google Pixel 2 (Test) (Android 11 - R) Google Pixel 2 (Android 9.0 - Pie) Google Pixel 2 XL (Android 10 - Q) Google Pixel 3 (Android 10 - Q) Google Pixel 3 XL (Android 10 - Q) Google Pixel 4 (Android 11 - R) Google Pixel 4 XL (Android 11 - R) Google Pixel (Android 9.0 - Pie) Google Pixel 5 (Android 11 - R) Google Pixel 5 (Android 12 - S) Google Pixel 5a (Android 12 - S) Google Pixel 5 (Android 13 beta 3.2) Google Pixel 5a (Android 13 beta 3.2) Huawei Honor 6 (Android 4.4.2 - KitKat) Huawei Honor 6X (Android 7.0 - Nougat) Huawei Honor 7 (Android 5.0.2 - Lollipop) Huawei Honor 9X 9.0 (Pie) Huawei Mate 10 Pro (Android 8.0 - Oreo) Huawei Mate 30 (Android 10 -Q) Huawei Mate 30 Pro (Android 10 - Q) Huawei Mate 9 (Android 7.0 - Nougat) Huawei MediaPad M5 BAH2-W19 (Android 8.0 - Oreo) Huawei MediaPad M5 CMR-W09 (Android 9.0 - Pie) Huawei Nexus 6P(Nexus 6P) (Android 8.1.0 - Oreo) Huawei Nova 5T (Android 9.0 - Pie) Huawei P Smart (Android 8.0 - Oreo) Huawei P10 (Android 7.0 - Nougat) Huawei P20 Pro (Android 8.1 - Oreo) Huawei P9 (Android 6.0 - Marshmallow) Huawei P9 Lite (Android 6.0 - Marshmallow) Huawei Y6II Compact (Android 5.1 - Lollipop) Lenovo Vibe K5 Note (Android 6.0 - Marshmallow) Lenovo Yoga tablet (Android 4.4.2 - KitKat) LG G4 (Android 5.1 - Lollipop) LG G4 Dual(LG-H818) (Android 6.0 - Marshmallow) LG G5 (LG-H860) (Android 6.0.1 - Marshmallow) LG G6 (Android 7.0 - Nougat) LG Nexus 5 (Android 6.0 - Marshmallow) LG Nexus 5X (Android 8.0 - Oreo) LG V30 (Android 7.1.2 - Nougat) Motorola Moto E (6) Plus (Android 9.0 - Pie) Motorola moto G (6) plus (Android 8.0 - Oreo) Motorola Moto G (8) Power (Android 10 - Q) Motorola Moto G4 Plus (Android 7 - Nougat) Motorola Moto X4 (Android 7.1.1 - Nougat) Nokia 2.3 (Android 11 - R) Nokia 2.4 (Android 11 - R) Nokia 7.2 10.0 (Android 10 - Q) OnePlus OnePlus 5 (Android 7.1.1 - Nougat) OnePlus OnePlus 6 (Android 8.1 - Oreo) OnePlus OnePlus 6T (Android 9.0 - Pie) OnePlus OnePlus 7T Pro (Android 10 - Q) OnePlus OnePlus 8 Pro (Android 11 - R) OnePlus OnePlus 9 (Android 12 - S) Oppo A37fw (Android 5.1.1 - Lollipop) Oppo A5 (Android 8.1 - Oreo) Oppo A5s (Android 8.1 - Oreo) Oppo F1 plus (Android 5.1 - Lollipop) Oppo R9m (Android 5.1 - Lollipop) Oppo Reno5 5G (Android 11 - R) Samsung Galaxy A50 (Android 9.0 - Pie) Samsung Galaxy A6 plus (Android 9.0 - Pie) Samsung Galaxy A71 (Android 10 - Q) Samsung Galaxy A8 (Android 8.0 - Oreo) Samsung Galaxy A9 (2) (Android 8.0 - Oreo) Samsung Galaxy A9 (Android 9.0 - Pie) Samsung Galaxy J2 (2015) (Android 5.1.1 - Lollipop) Samsung Galaxy J2 (2016) (Android 6.0.1 - Marshmallow) Samsung Galaxy J3 (Android 8.0 - Oreo) Samsung Galaxy J4 plus (Android 8.1 - Oreo) Samsung Galaxy J5 (Android 7.0 - Nougat) Samsung Galaxy J6 (Android 8.0 - Oreo) Samsung Galaxy J7 (Android 7.0 - Nougat) Samsung Galaxy Note 10 Lite (Android 10 - Q) Samsung Galaxy Note 4 (Android 6.0.1 - Marshmallow) Samsung Galaxy Note 8 (Android 8.0 - Oreo) Samsung Galaxy Note 9 (Android 8.1 - Oreo) Samsung Galaxy On Nxt (Android 8.1 - Oreo) Samsung Galaxy S10 (Android 12) Samsung Galaxy S10 (Android 10 - Q) Samsung Galaxy S10 e (Android 9.0 - Pie) Samsung Galaxy S10 plus (Android 9.0 - Pie) Samsung Galaxy S20 5G (Android 11 - R) Samsung Galaxy S4 (Android 5.0.1 - Lollipop) Samsung Galaxy S5 (Android 6.0.1 - Marshmallow) Samsung Galaxy S6 (Android 7.0 - Nougat) Samsung Galaxy S6 Edge (Android 6.0 - Marshmallow) Samsung Galaxy S6 Edge (Android 7.0 - Nougat) Samsung Galaxy S6(SM-G920I) (Android 7.0 - Nougat) Samsung Galaxy S7 (2) (Android 8.0 - Oreo) Samsung Galaxy S7 Edge (Android 6.0.1 - Marshmallow) Samsung Galaxy S7(SM-G930FD) (Android 8.0 - Oreo) Samsung Galaxy S8 (Android 8.0 - Oreo) Samsung Galaxy S8 plus (Android 8.0 - Oreo) Samsung Galaxy S9 (Android 8.0 - Oreo) Samsung Galaxy S9 plus (Android 8.0 - Oreo) Samsung Galaxy Tab S4 (Android 9.0 - Pie) Samsung Galaxy Xcover 4 (Android 7.0 - Nougat) Samsung Galaxy Z Flip (Android 10 - Q) Samsung Galaxy Z Fold 2 5G (Android 10 - Q) Sony Xperia 1 (Android 9.0 - Pie) Sony Xperia Z (Android 5.1.1 - Lollipop) Sony Xperia Z3 (E6553) (Android 6.0 - Marshmallow) Sony Xperia Z4 Tablet (Android 5.0.2 - Lollipop) Sony Xperia Z5 Dual(E6683) (Android 7.1.1 - Nougat) Vivo 1916 (Android 9.0 - Pie) Vivo S1 1907 (Android 9.0 - Pie) Vivo S7e (Android 10 - Q) Vivo V2029 (Android 10 - Q) Vivo X30 Pro (Android 9 - Pie) Vivo X60 (Android 11 - R) VSmart Live (Android 9.0 - Pie) Xiaomi MI 8 (Android 8.1 - Oreo) Xiaomi MI 9 (Android 9.0 - Pie) Xiaomi Mi A2 (Android 8.1 - Oreo) Xiaomi MI MAX 2 (Android 7.1.1 - Nougat) Xiaomi MI Mix 2s (Android 8.0 - Oreo) Xiaomi MI Mix 3 (Android 9.0 - Pie) Xiaomi Mi Note 10 (Android 9.0 - Pie) Xiaomi Redmi 3S (Android 6.0.1 - Marshmallow) Xiaomi Redmi 4 (Android 6.0.1 - Marshmallow) Xiaomi Redmi 4A (Android 6.0.1 - Marshmallow) Xiaomi Redmi 5 (Android 7.1.2 - Nougat) Xiaomi Redmi Note 4 (Android 7.0 - Nougat) Xiaomi Redmi Note 8 Pro (Android 9.0 - Pie)