Android
FAQs
General FAQs - DexProtector for Android
1. What types of final packages can be DexProtected?
For Android: All APKs, App Bundles (AABs), and Android libraries/SDKs (AARs).
2. Is DexProtector server-side or offline?
The protection process takes place entirely offline, but Runtime Checks can (optionally) send reports to servers.
3. Does DexProtector work with apps created with cross-platform frameworks, such as Cordova (/Phonegap), Ionic, ReactNative, Flutter, NativeScript?
Yes; see the page on Implementations and Integrations.
4. Can DexProtector secure Native Code / Native Libraries?
Yes; see Native Library Encryption and JNI Obfuscation in the Configuration File Overview.
5. Is DexProtector compatible with name obfuscators such as R8 or ProGuard?
Yes, DexProtector is fully compatible with name obfuscators such as R8 and ProGuard. For maximum security, it is worth using R8/ProGuard for additional name obfuscation, but certainly not as a replacement for DexProtector's protection mechanisms, which are far more comprehensive and work at a deeper level. The two tools can be combined seamlessly, with no conflicts. Apply ProGuard first for name obfuscation, and then either direct DexProtector to the ProGuard mapping file (via the CLI, via DexProtector Studio, or in the <proguardMapFile>
tag in the configuration file: e.g. <proguardMapFile>/Users/developer/project/proguard/mapping.txt</proguardMapFile>
), or specify both dependencies in Gradle and DexProtector will locate the mapping file automatically.
6. How does DexProtector work with Gradle?
The DexProtector Gradle plugin .jar file is included in the standard distribution package; all you need to do is set the path to DexProtector in buildscript.repositories in the project.build.gradle, add ':dexprotector-gradle-plugin:'
and ':dexprotector:'
as dependencies in the buildscript, apply the DexProtector plugin to the app.build.gradle
, and specify the DexProtector configuration file in the productFlavor and/or buildType block. For more information, see our guide to the DexProtector Gradle plugin.
7. Can we use DexProtector with Bitrise / Jenkins / Bitbucket Pipelines?
Yes; and we have a verified Bitrise Step: https://www.bitrise.io/integrations/steps/dexprotector
FAQs on Installation, Activation, Configuration, and Distribution
1. Where can I download the distribution package?
Links to distribution packages will be sent directly when trial or full licenses are issued, and when there are major updates to DexProtector. If you would like to request the latest version, please write to our support team.
2. Which is the most recent version of DexProtector?
To check the most recent version of DexProtector, along with all release notes, please see our Product updates page.
3. Which version am I currently using?
To check which version of DexProtector you are currently using, you can (a) click License Info in DexProtector Studio; (b) run the following command in the CLI: java -jar dexprotector.jar -info; or, (c) check the DexProtector log for the following information:
DexProtector Enterprise
Version: 12.5.9
Build id: 20220131
Licensed to: dexprotector@licelus.com
Support until: 01/01/2023
4. When does my license expire?
To check when your support license expires, you can (a) click License Info in DexProtector Studio; (b) run the following command in the CLI: java -jar dexprotector.jar -info; or, (c) check the DexProtector log for the following information:
DexProtector Enterprise
Version: 12.5.9
Build id: 20220131
Licensed to: dexprotector@licelus.com
Support until: 01/01/2023
5. Can I continue to use DexProtector after my license has expired?
Under the terms of our End User Licensing Agreement, you need to have an active license to use DexProtector to protect an app for distribution.
6. What will happen to previously DexProtected apps after my license has expired?
In the majority of cases, there will be no problems with DexProtected apps that have already been distributed; conflicts sometimes arise for two reasons: (1) When new OS versions are released; (2) When new devices are released. It is not always possible to futureproof DexProtector against developments related to these. In terms of security, though, published applications will be vulnerable when new tools and techniques used for attacks are developed, or when existing tools and techniques are updated. DexProtector has to be updated frequently to detect and prevent these tools.
7. What are the system requirements for DexProtector?
DexProtector works equally with Linux, Windows, or MacOS. The only requirement (or rather strong recommendation) is use Oracle's JRE, and it is also recommended to use the most recent version of Java.
8. Does DexProtector work on MacOS with Apple Silicon (ARM64)?
Yes, versions of DexProtector work on MacOS with Apple Silicon (ARM64), such as the M1 chip.
9. Why do I get the error message: 'The license file is not found or corrupted. Try running DexProtector with the -activate option'?
Activation codes are single-use, and license files are restricted to a specific user on a specific device / operating environment; they cannot be transferred between users or between devices / operating environments. Every time you try to use DexProtector on an additional device, you will need to request a new code. License files can also be corrupted due to OS updates, the effects of antivirus software, and the presence of external storage devices. Depending on your license agreement, there may be a limit to the number of active license files that you can have at any one time, but you are free to request a new activation code as often as you find necessary by writing to our support team.
10. Does DexProtector support Google Play App Signing?
Yes; just specify the keystore information and SHA256 fingerprint of the target certificate in your configuration. DexProtector will re-sign the package with the upload key, and then during every runtime will perform checks to make sure that the App Signing Key's certificate corresponds to the SHA256 fingerprint it calculates. For more information, see our guide to Google Play App Signing.
11. My app is crashing after DexProtection; what can I do?
If you are testing and your app is crashing unexpectedly, please make sure that (a) you are using the most recent version of DexProtector; (b) you have the correct signing configuration, and (c) you have not encrypted any classes or resources that need to be accessed directly by the system. If you continue to have problems, please write to our support team, and attach the DexProtected app, the relevant configuration file, and the verbose protection log. If you suspect a conflict with R8/ProGuard, please also send the mapping file.
If your app is crashing unexpectedly on end users' devices after distribution, please write to our support team, and include all relevant stack traces, and details from the developer console (Google Play or Amazon Appstore) about app version, affected devices, and OS versions. Please also attach the DexProtected app, the relevant configuration file, and the verbose protection log.To generate the verbose log, do as follows depending on how you use DexProtector:
DexProtector Studio: Enable verbose logging via the Build Settings window, then after protection find the link to the saved log in the 'Protection results' window
CLI: Add -verbose to your command line for running DexProtector, then redirect the standard output to a file (… > dexprotector_log.txt 2>&1)
Gradle plugin: add <verbose>true</verbose>
to your DexProtector configuration file; the logs will be saved at build/outputs/dexprotector/<buildType>/* (please send all files from the folder)
For more information, or to request a trial or full license for DexProtector,
Please get in touch via the contact form.
-
1. What is DexProtector?
Introduction to DexProtector > 1. What is DexProtector? -
2. The DexProtector process
Introduction to DexProtector > 2. The DexProtector process -
3. DexProtector Studio
Introduction to DexProtector > 3. DexProtector Studio -
4. Alice - Licel’s Attack Telemetry and Threat Intelligence System
Introduction to DexProtector > 4. Alice - Licel’s Attack Telemetry and Threat Intelligence System -
Overview
DexProtector for Android > Overview -
1. Download
Getting started > 1. Download -
2. Activate
Getting started > 2. Activate -
Activate via CLI (online)
Getting started > Activate via CLI (online) -
Activate via CLI (offline)
Getting started > Activate via CLI (offline) -
Activate via DexProtector Studio (online)
Getting started > Activate via DexProtector Studio (online) -
Activate via DexProtector Studio (offline)
Getting started > Activate via DexProtector Studio (offline) -
3. After activation
Getting started > 3. After activation -
Introduction to configuring DexProtector
Configuring DexProtector > Introduction to configuring DexProtector -
Configuration file overview
Configuring DexProtector > Configuration file overview -
Filters: A guide to targeting code and resources
Configuring DexProtector > Filters: A guide to targeting code and resources -
Inclusion
Configuring DexProtector > Inclusion -
Protecting every class in a specified package
Configuring DexProtector > Protecting every class in a specified package -
Protecting a single class
Configuring DexProtector > Protecting a single class -
Exclusion
Configuring DexProtector > Exclusion -
Excluding every class in a specified package from protection
Configuring DexProtector > Excluding every class in a specified package from protection -
Excluding a single class from protection
Configuring DexProtector > Excluding a single class from protection -
Mixed filters: Combining inclusion and exclusion
Configuring DexProtector > Mixed filters: Combining inclusion and exclusion -
Detailed filter syntax information
Configuring DexProtector > Detailed filter syntax information -
Additional notes on filters: Resource Encryption and Annotation Encryption
Configuring DexProtector > Additional notes on filters: Resource Encryption and Annotation Encryption -
Configuring DexProtector for applications (APK & AAB)
Configuring DexProtector > Configuring DexProtector for applications (APK & AAB) -
Example configuration for applications (APK & AAB)
Configuring DexProtector > Example configuration for applications (APK & AAB) -
Configuring DexProtector for libraries and SDKs (AAR)
Configuring DexProtector > Configuring DexProtector for libraries and SDKs (AAR) -
Initialization
Configuring DexProtector > Initialization -
Kotlin
Configuring DexProtector > Kotlin -
Protection of Public APIs
Configuring DexProtector > Protection of Public APIs -
Example configuration for libraries & SDKs (AAR)
Configuring DexProtector > Example configuration for libraries & SDKs (AAR) -
App Signing
Configuring DexProtector > App Signing -
Cloud Signing (Google Play App Signing; Amazon Appstore)
Configuring DexProtector > Cloud Signing (Google Play App Signing; Amazon Appstore) -
Google Play App Signing
Configuring DexProtector > Google Play App Signing -
Amazon Appstore Signing
Configuring DexProtector > Amazon Appstore Signing -
Signing for System Apps and Pre-Installed Apps
Configuring DexProtector > Signing for System Apps and Pre-Installed Apps -
Local Signing for APKs
Configuring DexProtector > Local Signing for APKs -
DexProtector Gradle Plugin
Implementations and Integrations > DexProtector Gradle Plugin -
DexProtecting Hybrid and Cross-Platform Applications (React Native, Ionic, NativeScript, Cordova, Xamarin, Flutter)
Implementations and Integrations > DexProtecting Hybrid and Cross-Platform Applications (React Native, Ionic, NativeScript, Cordova, Xamarin, Flutter) -
JavaScript and HTML-based Hybrid and Cross-Platform Apps
Implementations and Integrations > JavaScript and HTML-based Hybrid and Cross-Platform Apps -
Xamarin
Implementations and Integrations > Xamarin -
Flutter
Implementations and Integrations > Flutter -
Overview
DexProtector Studio > Overview -
Using DexProtector Studio: DexProtector JAR and License File
DexProtector Studio > Using DexProtector Studio: DexProtector JAR and License File -
Managing DexProtector JAR and License File
DexProtector Studio > Managing DexProtector JAR and License File -
Activating your license via Studio (online)
DexProtector Studio > Activating your license via Studio (online) -
Activating your license via Studio (offline)
DexProtector Studio > Activating your license via Studio (offline) -
Protecting your APK, AAB, or AAR with DexProtector Studio
DexProtector Studio > Protecting your APK, AAB, or AAR with DexProtector Studio -
Protection Recommendations
DexProtector Studio > Protection Recommendations -
Load Package for Protection
DexProtector Studio > Load Package for Protection -
Manage Protection Settings
DexProtector Studio > Manage Protection Settings -
Run Protection and View Protection Results
DexProtector Studio > Run Protection and View Protection Results -
Final Checklist
Completing the DexProtector Process > Final Checklist -
Run DexProtector via the CLI
Completing the DexProtector Process > Run DexProtector via the CLI -
Run DexProtector via DexProtector Studio
Completing the DexProtector Process > Run DexProtector via DexProtector Studio -
Using Alice with DexProtector
Alice - Threat Reporting and Telemetry > Using Alice with DexProtector -
General FAQs - DexProtector for Android
FAQs > General FAQs - DexProtector for Android -
FAQs on Installation, Activation, Configuration, and Distribution
FAQs > FAQs on Installation, Activation, Configuration, and Distribution
Link copied!