Q. Can an App be rooted?

Only a hardware device can be rooted although certain Apps require such a root privilege.

Car Sharing

Q. Can KitKat run CarSharing?

Since CarSharing uses BLE that requires running SDK 21 (Lollipop), KitKat running SDK 19 cannot run CarSharing App.

Q. Is CarSharing App required on the Gear?

Currently, a network environment that allows remote access to Gear, install of Tizen IDE, and issuance of a certificate are required to install CarSharing App on the Gear, and as such, this is required.

Without such developing infrastructures on the Gear, one can use Samsung Apps that might include an App for Gear during an App distribution. However, since this requires the use of Samsung Apps, not CarSharing App, even this method cannot be used with CarSharing App.

Code Split

Q. In Code-Splitting, how is it applied to a selected class in AppServo Developer Tool?

The Code-Split applies to all methods within a selected class except certain methods that are created additionally during compile time and/or by a creator. (Note: Code-Split obfuscation option is enabled at class levels, not at method levels).

AppServo Developer Tool

Q. Does AppServo protect voting machines?

If the voting machines are in Android App, AppServo can protect it.

Q. What tool is used in AppServo Developer Tool?

During decompiling or repackaging, AppServo uses apktool.

Q. Can AppServo protect SDK written in C++?

Basically, obfuscation objects are Android Dalvik Bytecodes (i.e. classes.dex files). Since it requires C++ source code modification to protect native libraries (.so files) via Self-Modifying, the obfuscation protection cannot be applied to already built native libraries.
However, the entire native library encryption feature can be added per request.


Q. What is "dpr0.dat" file?

This is a packing-applied and encrypted class file stored separately. It is also a dex-formatted file. If any classes are contained in this file, such classes are not in dex files. This file cannot be decompiled by Baksmali if already obfuscated.

Q. What is packing?

To encrypt class files and store them separately.

Q. What is MultiDex?

This concept is introduced due to Android dex files' structure limitations.

One dex file can contain upto 65536 methods. Hence, MultiDex allows a single APK to have more than 65536 methods through multiple dex files.

AppServo can read and process multiple dex files and can also produce mutiple dex files during packing.

Native Library

Q. What is the limit of native library encryption?

Only armeabi and armeabi-v7a are currently supported. Support for arm64 is planned in later product advancement stage.


Q. What is APK's format?

It is much like a ZIP-archieved file.

Q. In a CSV map file from AppServo Developer Tool, what are the order and descriptor for?

The order in the CSV map file does not mean much other than which class and which methods/fields within a class.

The descriptor can further be found in Java Language Specification but it is used to display fields' type as well as return types or parameters of methods. Java requires objects' type information in order to identify a specific object.

Q. What is Android NDK?

It is a tool contained in SDK to build native libraries.  AppServo uses Android NDK for native libraries used in the tool.

Q. In iOS, if competitors' arithmetic obfuscation is similar to AppServo's flow control, can thisalso be achieved through RPC's code-splitting obfuscation?

Competitors may apply obfuscation techniques based on source code.  However, for this source code obfuscation, x-code project's infrastructure needs to be known, but since no such official reference exists, source-code based obfuscation is not possible.

Personal Support