ZTE Blade III - Android

Hardware info on main page.

ROMS - xda - Choffas V0.1,

xda - root many Android,

MoDaCo - ZTE Blade III forums, ClockWorkMod 6.0.3.2 for ZTE Blade III, ClockWorkMod 6.0.4.4 for ZTE Blade III, Multiboot via loop file, TWRP Recovery 2.6.3.0 for Blade III,

Links

ZTE Blade3 blog, connect adb over TCP,

Work log

2015-06-09: battery - after 4d 10h 27m the battery is at 20%.

2015-06-06: battery - yesterday's fix seems to help. The phone has been 1d 13h 35 minutes on battery and it is at 60% now. Nice.

2015-06-05: battery - for a while now (ok, a long time) battery time has been lousy (below two days), and the problem maker seems to be Google Play Services (currently version 7.5.71). A bit of googling got me this from xda-developers PSA: Google Play Services Wakelock Affects Many 5.x ROMs, the comments make it clear that this also affects other versions (like cm11). For a quick fix I tried this (found in a comment): "Go to Settings > Privacy > Privacy Guard > Click the 3 dots in the top right corner and enable "Show built-in apps" > Scroll down to Google Play Services > LONG PRESS Google Play Services > Scroll down and disable "Wake up" and "Keep awake". Then I rebooted the phone. We shall see if it helps.

2014-12-30: app - updated Root Checker Basic to version 5.3.4,

2014-12-21: install cm11 - Android 4.4.4, CyanogenMod version 11-20140702-UNOFFICIAL-KonstaKANG-atlas40, push the new files via adb

tingo@kg-u35jc:~/doc/ZTE/Blade_III/rom/cm$ adb push ./cm-11-20140702-UNOFFICIAL-KonstaKANG-atlas40.zip /mnt/sdcard/
4265 KB/s (165415836 bytes in 37.868s)
tingo@kg-u35jc:~/doc/ZTE/Blade_III/rom/cm$ adb push ./gapps-kk-core-20140608.zip /mnt/sdcard/
4502 KB/s (21347877 bytes in 4.630s)

boot into CWM, backup and restore - backup first, mounts and storage - format /system wipe data and factory reset install cm-11-20140702-UNOFFICIAL-KonstaKANG-atlas40.zip install gapps-kk-core-20140608.zip reboot

2014-12-21: push the new cwm 6.0.4.9 recovery to the sd card: see that the device is there:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/recovery_cwm$ adb devices
List of devices attached 
de0948c0 device

push the file to the root of the SD card:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/recovery_cwm$ adb push ./recovery-cwm6049-atlas40.img /mnt/sdcard/
4170 KB/s (7004160 bytes in 1.640s)

Next, I used terminal emulator to install the recovery:

$ su -
#  dd if=/mnt/sdcard/recovery-cwm6049-atlas40.img of=/dev/block/mmcblk0p17

powered off the phone, held down the volume down button and powered on yes, it runs cwm 6.0.4.9 now.

2014-01-05: apps - I installed the Log Out! application, it lets me log out of all accounts on the phone. What I needed.

2014-01-04: install cm 10.2 from cwm: reboot into recovery:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/rom/cm$ ~/work/android-sdk-linux/platform-tools/adb reboot recovery

I've already done the backup, so do this mount and storage, format /system wipe data/factory reset install zip, choose zip from /storage/sdcard0, select cm-10.2-20131220-KonstaKANG-atlas40.zip choose zip from /storage/sdcard0, select gapps-jb-20130813-signed.zip reboot system now and the cyanogenmod logo shows up. After a while it boots into Android proper. To enable developer options: Settings, about phone, press "build number" several times. Now the phone runs Android 4.3.1, kernel version 3.0.8-CyanogenMod-perf-g01b0069, Memory 391 MB, CyanogenMod version 10.2-20131220-KonstaKANG-atlas40, Build date Fri Dec 20 13:42:17 EET 2013. Build number cm_atlas40-userdebug 4.3.1 JLS36l 4bec88985e test-keys, SELinux status disabled.

2014-01-04: prepare to install CyanogenMod 10.2 (cm 10.2) by pushing the files to the SDcard:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/rom/cm$ ~/work/android-sdk-linux/platform-tools/adb push ./cm-10.2-20131220-KonstaKANG-atlas40.zip /mnt/sdcard/
3066 KB/s (126860029 bytes in 40.403s)
tingo@kg-u35jc:~/doc/ZTE/Blade_III/rom/cm$ ~/work/android-sdk-linux/platform-tools/adb push ./gapps-jb-20130813-signed.zip /mnt/sdcard/
3154 KB/s (91736799 bytes in 28.398s)

a quick check with the file manager on the phone verifies that the files are at the root of the sdcard.

2014-01-04: install ClockWorkMod 6.0.4.4 via adb:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/cwm$ ~/work/android-sdk-linux/platform-tools/adb reboot bootloader
tingo@kg-u35jc:~/doc/ZTE/Blade_III/cwm$ ~/work/android-sdk-linux/platform-tools/fastboot flash recovery recovery-cwm6044-atlas40.img
sending 'recovery' (6564 KB)...
OKAY [  0.556s]
writing 'recovery'...
OKAY [  1.195s]
finished. total time: 1.752s
tingo@kg-u35jc:~/doc/ZTE/Blade_III/cwm$ ~/work/android-sdk-linux/platform-tools/fastboot reboot
rebooting...

finished. total time: 0.002s

Done. Does it work? Yes, holding pressing the volume down key while powering on gets me into cwm. Nice! FWIW, volume up pressed while powering on has the same effect.

2014-01-04: getting the backup off the device via adb:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/0_backups$ ~/work/android-sdk-linux/platform-tools/adb pull /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/ ./2014-01-04.21.06.06/
pull: building file list...
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/recovery.log -> ./2014-01-04.21.06.06/recovery.log
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/nandroid.md5 -> ./2014-01-04.21.06.06/nandroid.md5
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/cache.ext4.tar.a -> ./2014-01-04.21.06.06/cache.ext4.tar.a
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/cache.ext4.tar -> ./2014-01-04.21.06.06/cache.ext4.tar
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/.android_secure.vfat.tar.a -> ./2014-01-04.21.06.06/.android_secure.vfat.tar.a
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/.android_secure.vfat.tar -> ./2014-01-04.21.06.06/.android_secure.vfat.tar
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/data.ext4.tar.a -> ./2014-01-04.21.06.06/data.ext4.tar.a
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/data.ext4.tar -> ./2014-01-04.21.06.06/data.ext4.tar
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/system.ext4.tar.a -> ./2014-01-04.21.06.06/system.ext4.tar.a
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/system.ext4.tar -> ./2014-01-04.21.06.06/system.ext4.tar
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/recovery.img -> ./2014-01-04.21.06.06/recovery.img
pull: /mnt/sdcard/clockworkmod/backup/2014-01-04.21.06.06/boot.img -> ./2014-01-04.21.06.06/boot.img
12 files pulled. 0 files skipped.
3451 KB/s (672293436 bytes in 190.234s)

Have to do it this way since Android devices now show up as MTP devices (ugh).

2014-01-04: make a backup of device before anything else:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/cwm$ ~/work/android-sdk-linux/platform-tools/adb reboot bootloader
tingo@kg-u35jc:~/doc/ZTE/Blade_III/cwm$ ~/work/android-sdk-linux/platform-tools/fastboot boot recovery-cwm6044-atlas40.img
downloading 'boot.img'...
OKAY [  0.555s]
booting...
OKAY [  0.152s]
finished. total time: 0.708s

and from (cwm) recovery do backup & restore, backup. This creates a backup on the SD card.

2014-01-04: testing with adb:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/cwm$ ~/work/android-sdk-linux/platform-tools/adb devices
List of devices attached
P772N10    device

is that the correct device? Yes, I think it is.

2013-06-23: default mounts:

shell@android:/ $ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p19 /system ext4 ro,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p22 /data ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/mmcblk0p10 /persist ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p21 /cache ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/fuse /mnt/sdcard2 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/vold/179:33 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:33 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0

In case I need that later.

Various other info:

shell@android:/ $ busybox uname -a                                            
Linux localhost 3.0.8-perf-svn29906 #1 PREEMPT Mon Nov 26 00:57:19 CST 2012 armv7l GNU/Linux

environment

root@android:/ # printenv
_=/system/bin/printenv
ANDROID_BOOTLOGO=1
ANDROID_PROPERTY_WORKSPACE=8,90368
LOOP_MOUNTPOINT=/mnt/obb
PS1=$(precmd)$USER@$HOSTNAME:${PWD:-?} #
PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
USER=root
EXTERNAL_STORAGE=/mnt/sdcard
LOGNAME=root
ANDROID_DATA=/data
RANDOM=29823
TERM=vt100
MKSH=/system/bin/sh
HOME=/
LD_LIBRARY_PATH=/vendor/lib:/system/lib
SECONDARY_STORAGE=/mnt/sdcard2
ASEC_MOUNTPOINT=/mnt/asec
HOSTNAME=android
BOOTCLASSPATH=/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar:/system/framework/ZteDrmClient.jar:/system/framework/qcnvitems.jar:/system/framework/qcrilhook.jar
ANDROID_ROOT=/system
SHELL=/system/bin/sh
ANDROID_ASSETS=/system/app

ip info

root@android:/ # ifconfig
root@android:/ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: rmnet0: <> mtu 2000 qdisc noop state DOWN qlen 1000
    link/[530]
3: rmnet1: <> mtu 2000 qdisc noop state DOWN qlen 1000
    link/[530]
4: rmnet2: <> mtu 2000 qdisc noop state DOWN qlen 1000
    link/[530]
5: rmnet3: <BROADCAST,MULTICAST> mtu 2000 qdisc noop state DOWN qlen 1000
    link/ether f6:28:e8:9e:9c:f7 brd ff:ff:ff:ff:ff:ff
6: rmnet4: <BROADCAST,MULTICAST> mtu 2000 qdisc noop state DOWN qlen 1000
    link/ether 46:a0:39:8d:7e:d0 brd ff:ff:ff:ff:ff:ff
7: rmnet5: <BROADCAST,MULTICAST> mtu 2000 qdisc noop state DOWN qlen 1000
    link/ether 3e:c6:35:ad:44:af brd ff:ff:ff:ff:ff:ff
8: rmnet6: <BROADCAST,MULTICAST> mtu 2000 qdisc noop state DOWN qlen 1000
    link/ether 96:b3:20:68:72:97 brd ff:ff:ff:ff:ff:ff
9: rmnet7: <BROADCAST,MULTICAST> mtu 2000 qdisc noop state DOWN qlen 1000
    link/ether de:34:b3:21:03:e6 brd ff:ff:ff:ff:ff:ff
10: tunl0: <NOARP> mtu 1480 qdisc noop state DOWN
    link/ipip 0.0.0.0 brd 0.0.0.0
11: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
    link/sit 0.0.0.0 brd 0.0.0.0
12: ip6tnl0: <NOARP> mtu 1452 qdisc noop state DOWN
    link/tunnel6 :: brd ::
13: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether f0:84:c9:c3:16:db brd ff:ff:ff:ff:ff:ff
    inet 10.1.150.2/16 brd 10.1.255.255 scope global wlan0
    inet6 fe80::f284:c9ff:fec3:16db/64 scope link
       valid_lft forever preferred_lft forever

what else?

2013-06-23: I enabled adb access via tcp, by doing this on the phone: open a shell (Terminal emulator)

$ su -
# setprop service.adb.tcp.port 5555
# stop adbd
# start adbd

This allows me to connect to the phone from a machine with adb installed like so

tingo@kg-u35jc:~$ adb connect 10.1.150.2
connected to 10.1.150.2:5555
tingo@kg-u35jc:~$ adb shell
shell@android:/ $ id
uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats)

You can check the port with

$ getprop service.adb.tcp.port
5555

To return adb to the usb port, do

# setprop service.adb.tcp.port -1
# stop adbd
# start adbd

That's it.

2013-06-19: I rooted the phone by following this guide, like this:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/root$ chmod +x root-blade3.sh
tingo@kg-u35jc:~/doc/ZTE/Blade_III/root$ sudo ./root-blade3.sh
[sudo] password for tingo:
Searching for device
adb server is out of date.  killing...
* daemon started successfully *
Device found
< waiting for device >
downloading 'boot.img'...
OKAY [  0.494s]
booting...
OKAY [  0.135s]
finished. total time: 0.629s
Pausing for 1 minute. PLEASE WAIT!
5153 KB/s (2093648 bytes in 0.396s)
0 KB/s (33 bytes in 0.039s)
5775 KB/s (2093648 bytes in 0.354s)
0 KB/s (33 bytes in 0.040s)
5446 KB/s (2093648 bytes in 0.375s)
0 KB/s (33 bytes in 0.039s)
5641 KB/s (2093648 bytes in 0.362s)
0 KB/s (33 bytes in 0.044s)
Please wait
< waiting for device >
downloading 'boot.img'...
OKAY [  0.495s]
booting...
OKAY [  0.135s]
finished. total time: 0.631s
Please wait
Done

After the phone booted again, the Superuser app is in the list of apps. Nice.

2013-06-18: I upgraded Android on the phone. I connected the phone via usb and used adb from my Linux laptop to push the update.zip to the sdcard:

tingo@kg-u35jc:~/doc/ZTE/Blade_III/upgrade/Norway Blade III SD card upgrading instruction & software package(2020)-195650B1072ICS_P772N10V1.0.0B10$ ~/work/android-sdk-linux/platform-tools/adb -d push ./update.zip /mnt/sdcard
3045 KB/s (249651064 bytes in 80.051s)

Then disconnect the phone and see if the update runs. Settings, About phone, System updates, it just says that you should copy update.zip to the root of the sdcard, when I press OK it just starts the update. After the update, the phone has a new kernel 3.0.8-perf-svn29906, zte-kernel@Zdroid-SMT and a new build number ICS_P772N10V1.0.0B10.

2013-06-18: I turned on USB debugging in Settings, Developer options.