These instructions explain how to root the SH-01D.
They should also work for the 102SH
But instead of the "sh01d_unlock" below you should push "102SH_unlock".

1. First run the rootkit. Never mind the errors, it will get you root access so that we can root it properly. After completion:
- Install Superuser from Google Play (because the rootkit fails to install it)
- Install Terminal Emulator from Google Play
- Make sure you have a good file manager - I am using Total Commander and ES File Manager.

2. Now we'll re-run all necessary commands manually. Run everything from the folder containing this rootkit, e.g. C:\root\files\bin.

	adb shell mkdir /data/local/temp/
	/* If this fails, create the folders manually using your file manager */
	
	/* Let's push the file and then change permissions */
	adb push mkdevsh /data/local/temp/
	adb shell chmod 777 /data/local/temp/mkdevsh

	/* Now, here the rootkit moves the above folder to a new folder */
	/* but that's the first point where I got failure errors */
	/* so we'll do it in a different way. */
	/* First, we'll create the new folder */

	adb shell mkdir /data/local.org/
	/* if this fails, create the folders manually using your file manager */
	
	/* Now copy the entire folder 'temp' to /data/local.org --- from the phone */
	/* Now run this */
	adb shell ln -s /sys/kernel/uevent_helper /data/local/tmp

	/* reboot the phone */
	adb reboot

	/* after rebooting to Home screen run this */
	adb shell echo "/data/local.org/temp/mkdevsh > /sys/kernel/uevent_helper"
	/* mind the double quotes! without them, you'll get the error */
	/* that 'the system cannot find the path specified' */
	
	/* Now we push the file "sh01d_unlock" like a renamed file */
	adb push sh01d_unlock /data/local/temp/soff
	/* and change its permissions */
	adb shell chmod 755 /data/local/temp/soff

	/* Let's push some more files */
	adb push su /data/local/temp/
	adb push busybox /data/local/temp/
	adb push getroot.sh /data/local/temp/
	
	/* Now change permissions */
	adb shell chmod 755 /data/local/temp/getroot.sh

	/* Here we get to the part where the "getroot.sh" file is executed */
	/* but in my case it returns a bunch of errors file executes with problems */
	/* SKIP THIS: adb shell sh /data/local/temp/getroot.sh */
	/* Instead we execute each command in it manually */
	/* but we change some of the commands to avoid the errors */

	adb shell #!/dev/sh

	/* Create a new folder inside /data titled "local.ln" */
	adb shell mkdir /data/local.ln
	/* Or create it manually from the phone */

	/* Now copy the contents of /data/local to /data/local.ln */
	/* Do it manually from the phone */
	/* Then we copy the contents of /data/local.org to /data/local */
	/* again manually from the phone */

	/* Now we sync the folders */
	adb shell sync;sync;sync

	/* This command is supposed to unlock NAND and MIYABI */
	/* In my case it fails when executed via ADB */
	/* That's why we execute it from the phone */
	/* using the Terminal Emulator we installed at the beginning */

	/* Open Terminal Emulator */
	/* and get root rights by typing */
	su
	/* the cursor will change from $ to # */
	/* Run the command */
	/data/local/temp/soff

	/* You will see the following */
	/*
	open ok(12)
	mmap ret=0x10000000
	Miyabi Unlock!!!
	NAND_LOCK Unlock!!!
	Killed
	*/

	/* And now, the moment we've all been waiting for... */
	/* Execute the following */
	mount -o rw,remount /system /system

	/* Wait! There's still some more commands to execute */
	/* Execute all the below from the Terminal Emulator */

	cat /data/local/temp/su > /system/xbin/su
	chmod 06755 /system/xbin/su
	chown root.root /system/xbin/su
	chmod 06755 /system/xbin/su
	cat /data/local/temp/busybox > /system/xbin/busybox
	chmod 755 /system/xbin/busybox
	chown root.root /system/xbin/busybox
	cat /data/local/temp/soff > /system/xbin/soff
	chown root.root /system/xbin/soff
	chmod 755 /system/xbin/soff
	mount -o ro,remount /system /system
	sync;sync;sync;

	/* now the last steps - I executed them from the PC */
	adb push Superuser.apk /data/local/temp/Superuser.apk
	adb shell /system/bin/pm install -t -f -r /data/local/temp/Superuser.apk
	adb shell /system/bin/rm /data/local/temp/Superuser.apk

	/* SUCCESS!!! */

-------------------------
IMPORTANT!
The RW access you get to /system is lost upon reboot.
To re-acquire, just launch the Terminal Emulator on your phone and type:

	su
	/* cursor will change from $ to # */
	/data/local/temp/soff
	mount -o rw,remount /system /system

That's it! After I'm finished with making chnages to /system or /system/app
I execute the following command to restore RO access as I don't want to reboot the phone:

	mount -o ro,remount /system /system
	exit
	exit