Cracking ESRI Android Library

How to remove the watermark from ArcGis Runtime SDK for Android

First of all let me tell you guys that this is not a right way to remove the watermark . you have to buy it but since this tutorial is ONLY for educational purpose, it’s fine to have some fun. So let the fun begin… but before that I’ll explain briefly what is the appropriate way to remove the watermark.

The appropriate way to unlock the watermark on dev and test Runtime apps is to sign up for a free dev and test subscription and generate a LITE license string on the developer site. You can read about it here.

step 1 :

Download the pack I have provided on github and unzip it into a folder let’s say d:\crack

step 2 :

What you see in the folder are listed as below :

step 3 :

You also need to download a hex editor, I use Hex Editor Neo . Also you need IDA Pro v6.1 or later which I guess is not free but since it’s not essential, you can forget it.( but remember that IDA Pro is a must tool for crackers )

step 4 :

Open up cmd ( command promt ) and change directory to the folder which unzipped before.

d:
cd crack
#Put your apk you want to crack in `crack` folder lets say it's name is `target.apk`
Now in console type :
apktool_2.2.2.jar if target.apk

Then type :
apktool_2.2.2.jar d target.apk

After this a new folder will be created in current directory with same name as your apk file. (in this case the folder name is target) Now open up that folder, what you see are “res”,”build”,”lib”,”original”,”smali” folders and etc. Inside lib folder we have three folder named : “armeabi” , “armeabi-v7a” , “x86” which contain a .so (shared object ) file in each . These are the compiled files written in C .(yes almost all esri function implemented in C for 3 type of CPUs).

Now all you have to do is to decompile the .so file for each cpu and change whatever you want then compile it again, put it in its folder again, compile apk again and finally sign it and use it BUT since you don’t have IDA Pro, you cant change the .so file in a proper way .

Don’t worry, I did it before and all you need to do is to open each .so file in your hex editor and search for ‘JcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdF’ string. Once you find it all you have to do is to replace it with something else lets say with ‘bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb’ then save the file in it’s folder .

step 5 :

Now you should compile your app again in command line type :
apktool_2.0.1.jar b target
In target folder a new ‘dist’ folder will be created which contains an apk file .( it takes a few seconds to complete the job so take your time). Copy that apk file in dist folder to root and in terminal type :
java -jar signapk.jar certificate.pem key.pk8 target-app.apk destination-app.apk
(forgot to say you need to have java installed on your pc but since you are a android developer, certainly got it covered). target-app.apk is the apk created before in dist folder.

destination-app.apk is the final app you want to install on your device.

If you don’t want to go through all these steps, I uploaded the fixed .so files for you so you can use it.

Have fun!!! And remember using at your own risk…