Search

Slidepad 704ce - ICS 4.0 : Root, Tweaks and Google Play

Contents[Hide]

dropcap-android-rooted

slidepad-704ce-tablet

Memup Slidepad 704ce is a very affordable Android 7' tablet with a Allwinner A13 SoC (Cortex A8 processor), 4 Gb flash memory, 512 Mb RAM, a microSD connector and a fully working micro USB OTG port.

If you have the chance to follow one of the excellent CiLevel executive training course, this is the tablet you will get as a T-Book.

This tablet is shipped in 2 versions : Ice Cream Sandwich 4.0.4 and Jelly Bean 4.1.1.

Mine was ICS 4.0.4. Its main drawback were that  it is not pre-rooted & it doesn't include Google Play Store (only the lousy Getjar).
The version under Jelly Bean 4.1.1 comes with Google Apps pre-installed.

So, this article explains all the steps needed to root a Slidepad 704ce under ICS 4.0.4  and to install the complete Google Apps framework. After these steps, your will get a very nice little tablet with all the possibilities of Google Play Store (Gmail, Maps, ...). If your Slidepa 704ce is running JB 4.1.1 or if you want to upgrade it to JB 4.1.1, another guide is available at Slidepad 704ce - Jelly Bean 4.1.1 : Root your tablet.

Memup Slidepad 704ce seems to be the same hardware as Cybo MID7032. So, this procedure should be applicable to MID7032 (and to many other tablets embedding an A13 SoC).  If you get any success with other models, just let me know, so that I can add it in this article.

This procedure has been done to be run on a Ubuntu workstation, but it should be easily adapted to any other Linux flavour, and even to a Windows PC. As a pre-requisite, you need to Install Android tools on your Ubuntu box.

You have to understand that rooting your tablet is always a little bit risky.
So, if you go further, do it at your own risk !

1. Create Udev rule for Slidepad 704ce

To be able to detect the Memup Slidepad 704ce tablet under Ubuntu, first thing is to create the proper udev rules that will allow the system to detect the tablet.

These udev rules should be able to handle 2 different conditions, when the tablet is with USB debug on or off.

They will be declared in /etc/udev/rules.d/99-android.rules. If file already exists, just append the content at the end of it.

# sudo gedit /etc/udev/rules.d/99-android.rules

/etc/udev/rules.d/99-android.rules

# Memup slidepad 704ce
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="0001", MODE="0666", OWNER="your-login" # Slidepad 704ce with USB debug off
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="0003", MODE="0666", OWNER="your-login" # Slidepad 704ce with USB debug on

Replace your-login with your actual login.

Once done, udev service has to be restarted.

# sudo service udev restart

Your tablet will now be detected as soon as you connect it.

# lsusb
...
Bus 002 Device 075: ID 18d1:0003 Google Inc.
# adb devices
List of devices attached
SP704C413fc082    device

2. Root the Tablet

This root procedure is based on the well known android emulator hack.

The procedure has been adapted from a Xperia Arc rooting procedure on XDA forums.

Download the archive including all the rooting tools & scripts, unpack it on your computer and open a console in the unpacked directory.

Connect device with USB Debug on.

The rooting is done in 3 steps where the tablet will reboot at the end of each step.

All these 3 steps are available as shell scripts in the archive.

2.1. Step 1

First step is to :

  1. create temporary directory
  2. do some cleaning
  3. symlink tmp directory
  4. reboot the device

Just execute that script and your tablet will reboot at the end.

root-step1.sh

#!/bin/sh

adb wait-for-device
adb shell "cd /data/local && mkdir tmp"

adb shell "cd /data/local/tmp/ && rm *"
adb shell mv /data/local/tmp /data/local/tmp.bak

adb shell ln -s /data /data/local/tmp

adb reboot

2.2. Step 2

Next step is to :

  1. enable emulator hack
  2. reboot

Execute that script and your tablet will reboot again.

root-step2.sh

#!/bin/sh

adb wait-for-device

adb shell rm /data/local.prop > nul
adb shell "echo \"ro.kernel.qemu=1\" > /data/local.prop"

adb reboot

2.3. Step 3

Next step is to :

  1. push busybox & correct permissions
  2. remount /system
  3. check free space on /system
  4. copy busybox to /system/xbin/, correct ownership & permissions
  5. install busybox
  6. copy su to /system/xbin/, correct ownership & permissions
  7. correct symlinks
  8. clean filesystem
  9. install SuperUser
  10. install RootExplorer
  11. reboot

Execute that script.

root-step3.sh

#!/bin/sh

adb wait-for-device

adb push busybox /data/local/tmp/.
adb shell "chmod 755 /data/local/tmp/busybox"

adb shell "/data/local/tmp/busybox mount -o remount,rw /system"

adb push makespace /data/local/tmp/.
adb shell "chmod 777 /data/local/tmp/makespace"
adb shell "./data/local/tmp/makespace"

adb shell "dd if=/data/local/tmp/busybox of=/system/xbin/busybox"
adb shell "chown root.shell /system/xbin/busybox"
adb shell "chmod 04755 /system/xbin/busybox"

adb shell "/system/xbin/busybox --install -s /system/xbin"
adb shell "rm -r /data/local/tmp/busybox"

adb push su /system/bin/su
adb shell "chown root.shell /system/bin/su"
adb shell "chmod 06755 /system/bin/su"

adb shell "rm /system/xbin/su"
adb shell "ln -s /system/bin/su /system/xbin/su"

adb shell rm /data/local.prop
adb shell rm /data/local/tmp
adb shell mv /data/local/tmp.bak /data/local/tmp

adb install superuser.apk
adb install rootexplorer.apk

adb reboot

At the end of the script, your SlidePad 704 CE will reboot and is now fully rooted !

You can start SuperUser or Root Explorer applications to check that you can get super user privileges.

slidepad-704ce-superuser

3. Tweak Tablet Parameters

Google Play Store checks that the tablet meets the requirements before offering applications available for download.
As MID7032 is not a very common device, you will find few applications not available in Play Store for that device.

To avoid these annoyances, we will tweak the Slidepad to cheat Google Play Store and make it think it is running on latest Google Nexus 7 tablet.
That way, we will be able to install any application we want !

On the display side, by default, LCD density is set to 160. This is quite high for the Slidepad 704ce screen, making the icons very big.
We can adjust this LCD density to 120, allowing to display much more things on the screen.
With this setting, the system will handle the display as if it is a 8.9' screen.

All these tweaks are done by editing /system/build.prop and changing the lines in red :

/system/build.prop

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=IMM76I
ro.build.display.id=IMM76I
ro.build.version.incremental=20120907
ro.build.version.sdk=15
ro.build.version.codename=REL
ro.build.version.release=4.0.4
ro.build.date=Fri Sep 7 05:26:39 EDT 2012
ro.build.date.utc=1347009999
ro.build.type=user
ro.build.user=coby
ro.build.host=coby
ro.build.tags=release-keys
ro.product.model=Nexus 7
ro.product.brand=google
ro.product.name=nakasi
ro.product.device=grouper
ro.product.board=grouper
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=asus
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=exDroid
# ro.build.product is obsolete; use ro.product.device
ro.build.product=grouper
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=nakasi-user 4.0.4 IMM76I 20120907 release-keys
ro.build.fingerprint=google/nakasi/grouper:4.0.4/IMM76I/20120907:user/release-keys
ro.build.characteristics=tablet
# end build properties

# set default density to 120
ro.sf.lcd_density=120

...

You can edit and update this file with these command (USB Debug on) :

# adb pull /system/build.prop
# gedit build.prop
# adb push build.prop /mnt/sdcard
# adb shell su -c "cp /mnt/sdcard/build.prop /system/build.prop"
# adb shell su -c "chmod 644 /system/build.prop"
# adb reboot

For Play Store, your tablet is now a Nexus 7 ...

slidepad704ce-ics-nexus7

4. Install Google Play

android-google-playNow that the tablet is rooted, we can install Google Apps, including Google Play.

As I've not succeeded to install any package with the embedded recovery (Tablet Off, hold Volume+ button, press Power button for 10 secs, release it & finally release Volume+), all the following installation will be done only using ADB.

To do so, first thing to do is to download the ICS 4.0.4 Google Apps 20120317 ZIP archive from http://goo.im/gapps/.
It is important to use this specific version as latest ones are not including all the needed apps.

Unzip the archive in a directory.

Download the install-gapps.sh script and place it also at the root of the extracted directory. This script will handle the whole installation process.
To ensure maximum stability, the script won't reinstall the application packages already present on the stock distribution.

Finally, open a console at the root of that directory and start the install-gapps.sh script with the tablet connected (USB Debug on).

install-gapps.sh

#!/bin/sh

# mount system as read-write
# ---------------------------
adb wait-for-device
adb shell su -c "mount -o remount,rw /system"

# install google apps APK packages
# --------------------------------
adb push ./system/app/ChromeBookmarksSyncAdapter.apk /mnt/sdcard
adb push ./system/app/GenieWidget.apk /mnt/sdcard
adb push ./system/app/Gmail.apk /mnt/sdcard
adb push ./system/app/GoogleLoginService.apk /mnt/sdcard
adb push ./system/app/GoogleQuickSearchBox.apk /mnt/sdcard
adb push ./system/app/GoogleTTS.apk /mnt/sdcard
adb push ./system/app/MarketUpdater.apk /mnt/sdcard
adb push ./system/app/MediaUploader.apk /mnt/sdcard
adb push ./system/app/SetupWizard.apk /mnt/sdcard
adb push ./system/app/Talk.apk /mnt/sdcard
adb push ./system/app/Vending.apk /mnt/sdcard
adb push ./system/app/VoiceSearch.apk /mnt/sdcard
adb shell su -c "cp /mnt/sdcard/ChromeBookmarksSyncAdapter.apk /system/app; chmod 644 /system/app/ChromeBookmarksSyncAdapter.apk"
adb shell su -c "cp /mnt/sdcard/GenieWidget.apk /system/app; chmod 644 /system/app/GenieWidget.apk"
adb shell su -c "cp /mnt/sdcard/Gmail.apk /system/app; chmod 644 /system/app/Gmail.apk"
adb shell su -c "cp /mnt/sdcard/GoogleLoginService.apk /system/app; chmod 644 /system/app/GoogleLoginService.apk"
adb shell su -c "cp /mnt/sdcard/GoogleQuickSearchBox.apk /system/app; chmod 644 /system/app/GoogleQuickSearchBox.apk"
adb shell su -c "cp /mnt/sdcard/GoogleTTS.apk /system/app; chmod 644 /system/app/GoogleTTS.apk"
adb shell su -c "cp /mnt/sdcard/MarketUpdater.apk /system/app; chmod 644 /system/app/MarketUpdater.apk"
adb shell su -c "cp /mnt/sdcard/MediaUploader.apk /system/app; chmod 644 /system/app/MediaUploader.apk"
adb shell su -c "cp /mnt/sdcard/SetupWizard.apk /system/app; chmod 644 /system/app/SetupWizard.apk"
adb shell su -c "cp /mnt/sdcard/Talk.apk /system/app; chmod 644 /system/app/Talk.apk"
adb shell su -c "cp /mnt/sdcard/Vending.apk /system/app; chmod 644 /system/app/Vending.apk"
adb shell su -c "cp /mnt/sdcard/VoiceSearch.apk /system/app; chmod 644 /system/app/VoiceSearch.apk"

# install google apps XML definition
# ----------------------------------
adb push ./system/etc/permissions/com.google.android.maps.xml /mnt/sdcard
adb push ./system/etc/permissions/com.google.android.media.effects.xml /mnt/sdcard
adb push ./system/etc/permissions/com.google.widevine.software.drm.xml /mnt/sdcard
adb push ./system/etc/permissions/features.xml /mnt/sdcard
adb push ./system/etc/g.prop /mnt/sdcard
adb shell su -c "cp /mnt/sdcard/com.google.android.maps.xml /system/etc/permissions; chmod 777 /system/etc/permissions/com.google.android.maps.xml"
adb shell su -c "cp /mnt/sdcard/com.google.android.media.effects.xml /system/etc/permissions; chmod 777 /system/etc/permissions/com.google.android.media.effects.xml"
adb shell su -c "cp /mnt/sdcard/com.google.widevine.software.drm.xml /system/etc/permissions; chmod 777 /system/etc/permissions/com.google.widevine.software.drm.xml"
adb shell su -c "cp /mnt/sdcard/features.xml /system/etc/permissions; chmod 777 /system/etc/permissions/features.xml"
adb shell su -c "cp /mnt/sdcard/g.prop /system/etc; chmod 777 /system/etc/g.prop"

# install google apps JAR packages
# --------------------------------
adb push ./system/framework/com.google.android.maps.jar /mnt/sdcard
adb push ./system/framework/com.google.android.media.effects.jar /mnt/sdcard
adb push ./system/framework/com.google.widevine.software.drm.jar /mnt/sdcard
adb shell su -c "cp /mnt/sdcard/com.google.android.maps.jar /system/framework; chmod 777 /system/framework/com.google.android.maps.jar"
adb shell su -c "cp /mnt/sdcard/com.google.android.media.effects.jar /system/framework; chmod 777 /system/framework/com.google.android.media.effects.jar"
adb shell su -c "cp /mnt/sdcard/com.google.widevine.software.drm.jar /system/framework; chmod 777 /system/framework/com.google.widevine.software.drm.jar"

# install google apps libraries
# -----------------------------
adb push ./system/lib/libfilterpack_facedetect.so /mnt/sdcard
adb push ./system/lib/libflint_engine_jni_api.so /mnt/sdcard
adb push ./system/lib/libfrsdk.so /mnt/sdcard
adb push ./system/lib/libgcomm_jni.so /mnt/sdcard
adb push ./system/lib/libpicowrapper.so /mnt/sdcard
adb push ./system/lib/libspeexwrapper.so /mnt/sdcard
adb push ./system/lib/libvideochat_jni.so /mnt/sdcard
adb push ./system/lib/libvideochat_stabilize.so /mnt/sdcard
adb push ./system/lib/libvoicesearch.so /mnt/sdcard
adb shell su -c "cp /mnt/sdcard/libfilterpack_facedetect.so /system/lib; chmod 777 /system/lib/libfilterpack_facedetect.so"
adb shell su -c "cp /mnt/sdcard/libflint_engine_jni_api.so /system/lib; chmod 777 /system/lib/libflint_engine_jni_api.so"
adb shell su -c "cp /mnt/sdcard/libfrsdk.so /system/lib; chmod 777 /system/lib/libfrsdk.so"
adb shell su -c "cp /mnt/sdcard/libgcomm_jni.so /system/lib; chmod 777 /system/lib/libgcomm_jni.so"
adb shell su -c "cp /mnt/sdcard/libpicowrapper.so /system/lib; chmod 777 /system/lib/libpicowrapper.so"
adb shell su -c "cp /mnt/sdcard/libspeexwrapper.so /system/lib; chmod 777 /system/lib/libspeexwrapper.so"
adb shell su -c "cp /mnt/sdcard/libvideochat_jni.so /system/lib; chmod 777 /system/lib/libvideochat_jni.so"
adb shell su -c "cp /mnt/sdcard/libvideochat_stabilize.so /system/lib; chmod 777 /system/lib/libvideochat_stabilize.so"
adb shell su -c "cp /mnt/sdcard/libvoicesearch.so /system/lib; chmod 777 /system/lib/libvoicesearch.so"

# install google apps langage packs
# ---------------------------------
adb push ./system/tts/lang_pico/de-DE_gl0_sg.bin /mnt/sdcard
adb push ./system/tts/lang_pico/de-DE_ta.bin /mnt/sdcard
adb push ./system/tts/lang_pico/es-ES_ta.bin /mnt/sdcard
adb push ./system/tts/lang_pico/es-ES_zl0_sg.bin /mnt/sdcard
adb push ./system/tts/lang_pico/fr-FR_nk0_sg.bin /mnt/sdcard
adb push ./system/tts/lang_pico/fr-FR_ta.bin /mnt/sdcard
adb push ./system/tts/lang_pico/it-IT_cm0_sg.bin /mnt/sdcard
adb push ./system/tts/lang_pico/it-IT_ta.bin /mnt/sdcard
adb shell su -c "cp /mnt/sdcard/de-DE_gl0_sg.bin /system/tts/lang_pico; chmod 777 /system/tts/lang_pico/de-DE_gl0_sg.bin"
adb shell su -c "cp /mnt/sdcard/de-DE_ta.bin /system/tts/lang_pico; chmod 777 /system/tts/lang_pico/de-DE_ta.bin"
adb shell su -c "cp /mnt/sdcard/es-ES_ta.bin /system/tts/lang_pico; chmod 777 /system/tts/lang_pico/es-ES_ta.bin"
adb shell su -c "cp /mnt/sdcard/es-ES_zl0_sg.bin /system/tts/lang_pico; chmod 777 /system/tts/lang_pico/es-ES_zl0_sg.bin"
adb shell su -c "cp /mnt/sdcard/fr-FR_nk0_sg.bin /system/tts/lang_pico; chmod 777 /system/tts/lang_pico/fr-FR_nk0_sg.bin"
adb shell su -c "cp /mnt/sdcard/fr-FR_ta.bin /system/tts/lang_pico; chmod 777 /system/tts/lang_pico/fr-FR_ta.bin"
adb shell su -c "cp /mnt/sdcard/it-IT_cm0_sg.bin /system/tts/lang_pico; chmod 777 /system/tts/lang_pico/it-IT_cm0_sg.bin"
adb shell su -c "cp /mnt/sdcard/it-IT_ta.bin /system/tts/lang_pico; chmod 777 /system/tts/lang_pico/it-IT_ta.bin"

# reboot to finish installation
# -----------------------------
adb reboot

So, just run the script with your tablet connected with USB debug enabled.

At the end of the process, your tablet will do a final reboot.

This reboot will take quite a long time ... it's normal. The Dalwick cache is getting populated with the newly installed applications.

Wait for the GetJar screen to vanish and you will be in front of a dialog box asking to select between 2 programs.

Select SetupWizard. The classic Google Setup Wizard will be launched.

If you get an Application stopped message, just validate it, it's not a problem.

android-playstore
At the end of the setup, you're tablet is fully operationnal.

You will get the Play Store icon in your applications list !

You can now install any application you like using your Google account ... starting with TBook   :-)

slidepad-704ce-googleplay

 

Hope it helps !

Signature Technoblog

This article is published "as is", without any warranty that it will work for your specific need.
If you think this article needs some complement, or simply if you think it saved you lots of time & trouble,
just let me know at This email address is being protected from spambots. You need JavaScript enabled to view it.. Cheers !

icon linux icon debian icon apache icon mysql icon php icon piwik icon googleplus