Search code examples
androidopen-sourcereverse-engineering

So, you can't develop android app without being open-source?


I just read these topics:

Is there a way to get the source code from an APK file?

How to avoid reverse engineering of an APK file?

...and realized that you can't develop an android program without being possible for its .apk file to be reverse engineed. You can use Proguard and tricks but still your code will not be completely hideable.

So if you want to make an app completely close-source what you have to do?

For example, what Facebook and Snapchat and Messenger (e.g) did so their source codes are not accessible?

Also, another question: if you upload your app on google play, then a user can get your .apk?

Thanks in advance!


Solution

  • Every app may be reverse engineered. The difference is only time needed to do it.

    Proguard is a minimal solution whish requires minimal efforts and provides a level of protection that is enough in most cases.

    You may also use other obfuscation tools (for example, DexGuard).

    Another way is making shared libraries with Android NDK and using it. Reverse engineering of native binaries is usually more difficult than Java classes.

    Probably the only way to completely protect your algorithms is to remove them from user's device - move to a server. In that way application will do a requests, but computation will be performed on your server.

    As for extracting APK - it is possible, as Giorgos Pippos wrote.