Howto: Rooting DJI Crystal Sky

WARNING!!!! - If you have attempted to root your CS and install the play store using other methods STOP!!! Before you continue with this guide, do a factory reset and reinstall v02.06.06.00 firmware for your CS. I'm not responsible if you screw this up!

Howto: Rooting the DJI CrystalSky so you can install the google playstore and then any app you like.

This works on all versions up to and including V02.06.06.00

This guide and my rooting were done on Win7/64

The information in this howto was gathered through many sources on the internet.

Installing tools and gaining Root:----------------------------------Make a directory/folder on your windows machine to work from(I used) C:\adb This is where you will put the android tools, win-bash, and the CS rooting scripts.

On a windows machine download all of the following tools and scripts to your C:\adb folder.

Download the Opcodeffm/csroot files.

Go to the github listed below and on the "Clone or Download" tab select download. (You may have to make a git hub account.)Unzip the files to the folder you just made, in my example that is C:\adb folder

Start your bash terminal by running the start_shell.bat which is located in your C:\adb folder

This is a basic terminal and the prompt will look like bash$

Now it's time to start rooting the CrystalSky.

From your win-bash terminal, run the following commands. After each command I have listed what the output should look like. You will not see the ******** above and below the output. I just used those to separate the commands from the output.

./copy.sh

(this triggers the script to connect to the CS and copy the exploit files) *********** bash$ ./copy.sh checking if adb device is present List of devices attached 1234567890 device

In the main apps on your CS you now have SuperSU (SU), run SU(double tap), this is where you'll give Super User access to your apps. Most times when an app needs root you will get a popup from SU. You can now close SU.

Installing google play store and framework

Once root is gained from the previous steps, you need a flashing tool and the needed zip which contains the Play Store, Framework etc.

Download flashfire

Flashfire - there are newer versions of flashfire then the link below but this is what I used.

You should have file named open_gapps-arm-5.1-pico-xxxxxxx.zip where the xxxxxxx is the date you downloaded the file. For me that was open_gapps-arm-5.1-pico-20180912.zip and yours will have a different date.

Now copy both eu.chainfire.flash_0.71-710_minAPI17(armeabi-v7a,x86)(nodpi)_apkmirror.com.apk AND open_gapps-arm-5.1-pico-20180912.zip to a micro sd card and put it in sd card1 slot on your CS.

Installing flashfire and playstore.

- From the main boot menu on the CS open the explorer and select SD Card 1- Locate the chainfire file and open it.- Give flashfire su, if asked (should be asked)- In flashfire, tap the “+” sign on the right hand corner.- Choose “Flash ZIP or OTA”- Tap on top of the filebrowser to change to “Filesystem root”- Navigate to “mnt/external_sd1”- Choose your zip file- Leave “Auto-mount” and “Mount/system read/write” unchecked- Hit the checkmark and there you go

After several reboots, you will be greeted with the setup assistant. Step through it, make your desired settings and that should be it.

This has been tested on an CrystalSky 5.5 and 7.85, System Version up to 2.06.06.00

Once installed, you will be required to self register the CS as an uncertified Android device. This way you can install apps. You can do this by following the next set of steps below.

The line to add/modify is <string name="KEY_MUTEX_PREF_PKG">dji.pilot.pad</string>it may be missing or be <string name="KEY_MUTEX_PREF_PKG">dji.go.v4</string>

Once again, add or change it to <string name="KEY_MUTEX_PREF_PKG">dji.pilot.pad</string>Save the file.Once the file is saved, copy it from /Download/ (in local storage) to the original place : /data/data/dji.system.launcher/shared_prefs/and overwrite the original file.

Reboot CS. Should now never lose NLD app.

Some times the NLD app will continue to dissapear. To fix this edit the file on your windows PC with notepad ++

On the CS

copy the /data/data/dji.system.launcher/shared_prefs/dji.system.launcher.xml to /mnt/sdcard/Download/

On your PC in an adb shell:

adb pull /mnt/sdcard/Download/dji.system.launcher.xml

this will download the file on PC.

Modify the file on PC side with a text editor (e.g. notepad++) to add the line

<string name="KEY_MUTEX_PREF_PKG">dji.pilot.pad</string> or replace dji.go.v4 with dji.pilot.pad in it if already there.

Save the file on PC side.

Then upload it back to the CS, in an adb shell:

adb push dji.system.launcher.xml /mnt/sdcard/Download/

Use ES explorer pro copy / paste the xml file from /Download/ to /data/data/dji.system.launcher/shared_prefs/(you should get asked to overwrite : say YES)

Reboot CS, try pressing middle button, NLD should still be there and stick now.

You might need to redo this if you later install or change the launcher to avoid the awful DJI one e.g. Nova, Google Now Launcher, Windows Launcher)

The copy/overwrite needs to be done with ES Explorer Pro as it handles properly overwriting a file with read/only partitions etc. If you try to modify it directly, the unmodified version would be restored automatically from a cache, erasing your changes.

--------------------------------

Software I recommend you install, I have no game in this, they are just suggestions.

In no particular order.

No Root Firewall - I use it to block all the factory DJI apps and IP numbersNova Launcher (Prime) - us it to replace the DJI launcher, I like it so I got the prime versionES File Explorer (Pro) great all around file explorer (again pro if you like it) https://play.google.com/store/apps/details?id=com.estrongs.android.pop.proTerminal Emulator - used to further customize your CS and shell https://play.google.com/store/apps/details?id=jackpal.androidtermQuick Edit (Pro) - great all around text editor, pro if you like itChrome to replace the CS internet browserSqlite (prime) - great tool for looking in DJI and other databases/gservicesLast but not least - check out no limit dronez www.nolimitdronz.com It's your bird, fly it how you want to, but be safe!

I've made it this far, but I'm not getting the setup assistant. Any suggestions?

So you installed the correct playstore zip file using flashfire?

----------------------------

Installing flashfire and playstore.

- From the main boot menu on the CS open the explorer and select SD Card 1- Locate the chainfire file and open it.- Give flashfire su, if asked (should be asked)- In flashfire, tap the “+” sign on the right hand corner.- Choose “Flash ZIP or OTA”- Tap on top of the filebrowser to change to “Filesystem root”- Navigate to “mnt/external_sd1”- Choose your zip file- Leave “Auto-mount” and “Mount/system read/write” unchecked- Hit the checkmark and there you go

Yes, had trouble getting zip from gapps, used older one (same version) first, later whatever was up w/the web site let me down load latest version. So I skipped the older and flashed newest. Followed install instructions.I gave CS several (many) reboots and reflashed several (many) times to give it another chance but just not seeing play store.

Yes, had trouble getting zip from gapps, used older one (same version) first, later whatever was up w/the web site let me down load latest version. So I skipped the older and flashed newest. Followed install instructions.I gave CS several (many) reboots and reflashed several (many) times to give it another chance but just not seeing play store.