Prerequisites

The Harmony App Protect supports minimum Android API level 24 (Android 7).

Foreground Service

Starting from Android Oreo (API level 26), Android requires apps to run in the foreground to perform background services and to get implicit broadcasts.

To maximize our detection capabilities, we recommend you run a foreground service. See the example in the Demo app - Android in the Using SDK page.

Memory Requirements

Harmony App Protect for Android averages 20-50MB of memory usage. During a scan of a large apk file, memory usage may peak up to a maximum of 120MB depending on the size of the apk.

HTTP Traffic Requirements

If your app targets Android Pie (API level 28) or higher, Android blocks HTTP traffic by default, unless the application explicitly declares the Network Security Configuration in AndroidManifest.xml file that allows HTTP traffic.

While this requirement provides better overall security, Harmony App Protect's MiTM detection relies on opening HTTP connections. Therefore, you need to add a Network Security Configuration in AndroidManifest.xml, or edit an existing one.

There are two ways to configure Network Security Configuration to allow HTTP traffic (see Android Studio Instructions):

  1. Allow all HTTP traffic by default.

  2. Allow HTTP traffic to bosko.locsec.net.

We recommend the second way because it is much more secure. If you choose to use this (second) configuration and you have custom legacy trust managers for HTTPS connections, you must upgrade each of them to an extended trust manager. For more information, see Android Nougat changes.

App Scanning Requirements

For Harmony App Protect to scan the protected application, Google Play must grant QUERY_ALL_PACKAGES permission to the app.

To get this permission on Android 11 and higher, make sure your app meets the Google Play requirements.