Compdigitec Labs

« | Home | »

Exploring and rooting the iPPea TV

By admin | November 24, 2012

Skip to the rooting process, if you wish.

The iPPea TV is a pretty neat gadget, to say the least. The USB-stick sized device features a full Android 4.0.3 OS, a 1Ghz Ingenic JZ4770 MIPS processor (complete with FPU!), 512 MB of RAM, 2 GB flash storage, and about 800 MB of internal memory. Overall, it is pretty impressive for only $65. Having received it about three weeks ago for use in the development of the MIPS port of VLC Android, I’ve been meaning to write about this device. Now that I’ve received this device and have time to write, let’s take a look at what’s in it.

Unboxing the iPPea

Unboxing the iPPea

The iPPea comes in its own packaging, in addition to the 3D gyroscopic remote offered by Option B.

The iPPea's packaging

The iPPea’s packaging

The iPPea comes with some packaging.

The iPPea after unpacking

The iPPea after unpacking

So, after unpacking, we are ready to play with the iPPea. The iPPea simply “plugs in” to any HDMI-enabled TV, just like how a USB stick plugs into a computer. It doesn’t take too long to boot up, about 15-25 seconds-ish (I did not time this).

The iPPea's home screen after booting up

The iPPea’s home screen after booting up

Output of /proc/cpuinfo on the iPPea

Output of /proc/cpuinfo on the iPPea

Just a curious note here, the iPPea claims to support full 1080p, but my television reports it to be 720p. I did not notice any lack of quality though, the picture was still very clear and not pixellated.

The iPPea boots into a full Android 4.0.3 installation, as mentioned before, with the twist that it runs a MIPS processor. It also features full wifi, which we will use in some diagnostics. Here are the /proc/cpuinfo and Android Sysinfo dumps for the iPPea TV:

system type		: JZ4770
processor		: MIPS-compatible processor JZ4770
cpu model		: Ingenic XBurst
BogoMIPS		: 1001.88
wait instruction	: yes
microsecond timers	: no
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 1, address/irw mask: [0x0fff]
ASEs implemented	: mxu
shadow register sets	: 1
core			: 0
VCED exceptions		: not available
VCEI exceptions		: not available
Features		: fpu mxu
CPU implementer		: Ingenic
CPU architecture	: MIPS

Hardware		: linden
Revision		: 0005
Serial			: 0000000000000000

EFUSE0			: d075370b
EFUSE1			: 02c00811
EFUSE2			: fc460000
EFUSE3			: 8a54c84f
EFUSE4			: 00000000
EFUSE5			: 00000000
EFUSE6			: 00000000
EFUSE7			: 00000000

…and the Sysinfo dump:

ID=IML74K
Product=linden
Device=linden
Board=unknown
CPU ABI=mips
CPU ABI 2=mips-r2
Manufacturer=ingenic
Brand=Ingenic
Model=iPPea
Type=eng
Tags=test-keys
Finger Print=Ingenic/linden/linden:4.0.3/IML74K/eng.spark.20120901.003556:eng/test-keys
Time=1346431472000
User=spark
Host=spark
Hardware=linden
Radio=unknown
Bootloader=unknown
Incremental Version=eng.spark.20120901.003556
Release Version=4.0.3
SDK Version=15

Rooting the iPPea TV

Curiously, the iPPea comes with busybox built-in into the image. This will make working with the iPPea easier, as we don’t have to compile/download busybox and deploy it - full access to all the busybox tools is available by default.

But what makes rooting really easy is the fact that the makers of the iPPea handed the blessing of leaving ro.secure off. This means that a simple adb connection is enough to grant root access - all that we have to do is install a su binary.

Unfortunately, the busybox su requires too much baggage of the traditional Linux system - notably /etc/passwd, /etc/groups and friends to work. Since this is a MIPS system and Superuser.apk is contains an ARM binary, that approach cannot work either. In addition, compiling su-binary from Superuser.apk requires the entire AOSP tree, which is too much work and network bandwidth for us. So, we will use a portable C implementation of su instead.

This step does require you to plug in the iPPea into a computer with ADB, so be prepared to do so. You will also need this prebuilt portable MIPS Android su binary. Skip over these steps if you are using the prebuilt binary (these are instructions to compile it yourself with the Android NDK):

export ANDROID_NDK=/opt/android-ndk-r8c # set as you need
$ANDROID_NDK/toolchains/mipsel-linux-android-4.6/prebuilt/linux-x86/bin/mipsel-linux-android-gcc --sysroot=$ANDROID_NDK/platforms/android-9/arch-mips -g su.c -o su

Now that you have the ‘su’ binary handy as well as your iPPea detected in adb (adb devices, you may need to chown it to make it visible), here we go:

adb push su /dev/
adb shell
# now we are on the iPPea
busybox mount -o remount,rw /system
busybox mv /dev/su /system/bin/su
busybox chmod 4755 /system/bin/su
busybox mount -o remount,ro /system
exit
# now we are back to our computer
adb reboot # to reboot

At this point we can put the iPPea back on the TV. If we open Term.apk and put in “su” and press Enter, we should have root:

Victory! Root access on the iPPea

Victory! Root access on the iPPea

And of course, once we have root access, the opportunities increase without bound - chrooted Debian/Linux, Android apps that require root, reformat and reflash with a custom ROM - the sky becomes the limit. We do, however, owe many thanks (and this is not meant to be sarcastic) to iPPea for leaving ro.secure at 0, allowing hobbyists to make better use of the hardware (which in itself is very neat).

If you found this article helpful or interesting, please help Compdigitec spread the word. Don’t forget to subscribe to Compdigitec Labs for more useful and interesting articles!

Topics: Linux, Mobile | 17 Comments »

17 Responses to “Exploring and rooting the iPPea TV”

  1. Bill Says:
    November 25th, 2012 at 12:55 pm

    Excellent. I fired up my ippea for the first time and couldn’t find anything on rooting, then the next day I did a search and found your how to.

    Now all that is needed is booting from the sdcard and I will have a really nice little mips box.

    Can I link to your page on the ippea forums?

  2. admin Says:
    November 25th, 2012 at 6:18 pm

    Of course, feel free to add hyperlinks as you wish.

  3. Pigeon Says:
    November 26th, 2012 at 11:02 pm

    Hi.
    Firstly, thanks for your info.
    Just got two iPPea from work, unfortunately their ro.secure are set to 1. Guess I’ll have to find other ways of rooting it.
    Anyway, I got a quick question, what did you use the connect to it using adb in the first place? Is it just straight from the USB OTG or the USB host port?
    Thanks.

  4. admin Says:
    November 27th, 2012 at 3:58 pm

    @Pigeon:

    I used the USB host port. Weird, are they shipping iPPeas with ro.secure=1 now? My iPPea came with ro.secure to 0.

  5. Pigeon Says:
    November 29th, 2012 at 11:27 pm

    @admin:

    Yeah the one I’m using here has ro.secure=1

    Also, I just got a male-to-male usb cable connecting the usb host on the ippea to the computer, but no usb device is coming up there.

    And when I connect the micro usb otg to the computer it’s only appearing as a usb storage device.

  6. Buzz Says:
    December 9th, 2012 at 9:48 am

    I got excited when I found this site and discovered that it was possible to root my IPPea. Unfortunately, it hasn’t helped me, probably because I’m not understanding the procedure. (Note: I’ve been working with computers since before the days of CPM, i.e. early 1980′s. Quite smirking, I know I’m a fossil!)

    Could some kind soul restate the instructions in a linear (step 1, step 2, etc.) fashion? I’d also like someone to tell me why I can’t view my IPPea from my laptop (Linux-bases) when I connect it. I can’t even view it as a storage device.

    Note: I got my IPPea early last August when they first were released. For the most part, it’s worked well for me. I have had issues with sound (i.e. I don’t have any sound), but that is a television issue that I have confirmed by testing my device on another television.

    Thanks for any and all help.

    Buzz
    Antigua, Guatemala
    President and half the membership (my wife is the other member) of the Guatemala IPPea Users Group. :0)

  7. admin Says:
    December 15th, 2012 at 8:23 pm

    @Buzz:

    What exactly is not clear? If you be more specific, I might be able to help you.

  8. Bill Says:
    December 20th, 2012 at 2:33 am

    I decided to do the root and have the same issue reported by Pigeon. Connecting to the OTG Micro I get 2 USB devices that I can’t mount, and connecting to the Host USB I get nothing at all.

    I am wondering if this could be a cable issue? I noticed that using my male2male cable with the supplied Micro that I get no devices, but do get devices with another cable. I tested the cables with other devices an they work fine?

    I will find another male2male and try again.

    Bill

  9. Bill Says:
    December 20th, 2012 at 5:29 pm

    I tried connecting with another cable and to another computer, but still have no host connection.

    I tested the device separately to make sure it is still working and the Host USB works with a keyboard. But I cannot find anything wrong?

    Bill

  10. admin Says:
    December 21st, 2012 at 8:42 pm

    What about connecting the “power” cable to the computer?

  11. Bill Says:
    December 22nd, 2012 at 11:11 am

    I didn’t say so, but yes I did connect the power cable to the computer and the light came on. I have both the power cable and a USB to either of the USB port on the IPPea.

    I can get USB storage devices listed on the one connection and nothing on the other connection; I don’t get anything from ‘adb devices’ in either case. It has me baffled, I will take a break from it and come back to it in a few days.

  12. Bill Says:
    January 4th, 2013 at 11:39 am

    Second try … first post seems to be deleted …

    I managed to get the ‘adb shell’ to connect to the IPpea. I seems there were 2 issues:

    1) I had to use a a USB to micro USB cable between the computer and the OTG. Using the host didn’t work, nor did using the adaptor cable supplied. I also plugged in the power cable.

    2) I had to kill the server and restart with the right permissions before the ‘adb devices’ worked. Until I did this the IPpea was detected, but the command gave a permissions error.

    After that I was able to ‘adb shell’ into the IPpea and push the ‘su’ command. I was also able to run the ‘su’ command.

    I haven’t confirmed it is rooted since I don’t seem to have the ‘Term.apk’ installed. Also I checked and I see I have ro.secure=1 :-(

    I am wondering of the update to add the google play store changes the ro.secure setting and then the Term.apk can be installed?

    I will have another look at this in a day or 2.

    Bill

  13. admin Says:
    January 4th, 2013 at 7:14 pm

    @Bill:

    Well, as long as you pushed it and did the chmod properly as described above, you should be fine.

  14. Bill Says:
    January 5th, 2013 at 2:42 am

    Excellent. You say to run Term.apk, was this installed on your IPpea or did you add it and if so from GooglePlay or from a MIPS apk repository?

  15. tawhiti Says:
    January 6th, 2013 at 4:09 pm

    Bill:

    The latest update.zip from http://www.ixapp.com/joomla/index.php?option=com_content&view=article&id=117
    has ro.secure=0

    Admin:

    The following is an email I sent to ixapp.com (people who supply the update.zip mentioned above)
    I did not receive a reply and wonder if anyone reading this blog can help.
    It seems to be related to Bill’s posts but please feel free to delete or move if you feel this is off topic …..

    Thankyou for your time.

    The update.zip you supplied works great. Thank you for your work.

    I have been trying to root my ippea device. I have unpacked your update.zip and
    tried adding my own files. However, I must be doing something wrong as my update.zip
    does not install.

    If you google “Signature Verification Failed” you will see it’s a common problem for many but you seem
    to not have any problems.

    I have been trying for months to resolve this problem.
    I hate to impose on you as you’ve already done so much to help ippea users but a list of the programs you
    use to make your update.zip and the commandlines used, would be helpful.

    The “su” (superuser) program is needed to run programs as root.
    Your latest update.zip has the following in default.prop found in boot.img

    ro.secure=0
    ro.allow.mock.location=1
    ro.debuggable=1
    persist.sys.usb.config=adb

    This seems to be what is needed to have a rooted ippea with the addition of “su”. I was trying
    to use the native su program supplied in the following link -

    http://www.compdigitec.com/labs/2012/11/24/rooting-the-ippea/

    However my final update.zip shows “Signature Verification Failed” when trying to update my ippea.

    Currently my ippea is not recongnised in any way by adb. No usb (usb debugging is set on android settings)
    or tcp access ….. so the method shown at Compdigitec will not work. A complete reset is needed.
    Are you able to achieve any access with adb with your ippea device?

    Have you had any success rooting ippea?

    Once again, thank you.

  16. admin Says:
    January 9th, 2013 at 8:19 pm

    @Bill:

    Term.apk is the wonderful androidterm we’ve all come to love: https://github.com/jackpal/Android-Terminal-Emulator

    It’s a universal (Java-based) APK, no special MIPS treatment required.

  17. Bill Says:
    April 4th, 2013 at 3:10 pm

    I finally got back to this and successfully rooted my device and installed Google Play. From what i can tell it is the Google Play update that set ro.secure=0 since it was 1 on my device before the update.

    I’d really like to boot Linux on this device, but so far have settled for a chroot, described here:

    http://forum.ippea.com/viewtopic.php?f=54&t=505

    Thanks for your help. Bill

Comments