u9200

Warning /!\ Ubuntu Touch is no longer maintained as a core product by Canonical. However, the Ubports community are continuing development.

General

Device name

Huawei Ascend P1

Code name

u9200

Image maintainer(s)

https://launchpad.net/~jani

State of things

Legend

State

Explanation

Perfect

Everything works, all patches included in Ubuntu proper

Working

Works, minor issues only, some patches pending

W-I-P

Work in progress

Blocked/Broken

Severely broken, unusable or progress is blocked

Unknown

Unknown

What

Status/Comments

Graphics

Unaccelerated

Boot process

Rotation

Cellular Radio

Wireless network

Wi-Fi not working

Sound

Touch

Camera

Video Decode

Suspend/Resume

Other

Unlocking instructions

My device came with unlocked bootloader, so fastboot flash just works.

Known issues

Almost nothing works except booting up into the Ubuntu Touch shell.

Trying the image

bzr branch lp:phablet-tools
cd phablet-tools
./phablet-flash community --device u9200

== How to build it yourself==

Check out the full phablet tree as described in

https://wiki.ubuntu.com/Touch/Building

!! Use the phablet-saucy branch !!

Apply these patches

In frameworks/native

diff --git a/services/surfaceflinger/EventThread.cpp b/services/surfaceflinger/EventThread.cpp
index edb9fa5..1f0eb16 100644
--- a/services/surfaceflinger/EventThread.cpp
+++ b/services/surfaceflinger/EventThread.cpp
@@ -277,6 +277,7 @@ Vector< sp<EventThread::Connection> > EventThread::waitForEvent(
                 // use a (long) timeout when waiting for h/w vsync, and
                 // generate fake events when necessary.
                 bool softwareSync = mUseSoftwareVSync;
+                softwareSync = true;
                 nsecs_t timeout = softwareSync ? ms2ns(16) : ms2ns(1000);
                 if (mCondition.waitRelative(mLock, timeout) == TIMED_OUT) {
                     if (!softwareSync) {

In system/core

diff --git a/rootdir/init.rc b/rootdir/init.rc
index af04616..b51b6d4 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -541,7 +541,7 @@ service mdnsd /system/bin/mdnsd
     oneshot
 
 service sensorservice /system/bin/sensorservice
-    class late_start
+    class main
     user system
     group graphics audio camera inet net_bt net_bt_admin net_bw_acct drmrpc input

Grab the manifest file from here, put it in .repo/local_manifests/huawei_u9200.xml then run repo sync

https://gist.github.com/janimo/5412625

repo sync will grab the device/ and kernel/ trees for this device from the below URLs

https://github.com/janimo/android_device_huawei_u9200 https://github.com/janimo/android_kernel_huawei_u9200

Now you need to get the proprietary vendor bits without which the image is not working at all. There are a few ways to do this, 1 being the recommended one if you have a working Android device.

1)Have a device plugged into USB and accessible via adb, then

cd device/huawei/u9200
./extract-files.sh

2) Download the updater .zip file from Huawei http://www.huaweidevice.com/worldwide/downloadCenter.do?method=toDownloadFile&flay=software&softid=NDY4ODc= unzip it unpack the resulting UPDATE.APP using this perl script https://gist.github.com/janimo/5412727 This will results in over a dozen files, blobs corresponding to each partition in the device, unknown_file.12 being the system partition in a fastboot sparse format that needs to be converted in a properly mountable ext4 filesystem image

apt-get install android-tools-fsutils
simg2img unknown_file.12 image
mkdir system
sudo mount -o loop image system

Now you have the original Android rootfs under system/ In the source tree under device/huawei/u9200, you can call the same extract script telling it to copy from an existing local path instead of adb pulling from a connected device

VENDOR_DIR=/path/to/this/loopmounted/system ./extract_files.sh

3) Get hold of an existing vendor/ dir and just drop it/clone it into under vendor/huawei/u9200

Now on to actually building it:

. build/envsetup.sh
brunch u9200

The result should be under out/target/product/u9200

You can fastboot flash the boot.img recovery.img system.img and userdata.img partitions, then boot into recovery and pick sideload in the device. On your machine

adb sideload saucy-preinstalled-touch-armhf.zip

That zip being whatever Ubuntu image you download from http://cdimage.ubuntu.com/ubuntu-touch/daily-preinstalled/

Redistributability

The proprietary blobs are probably not redistributable.

Touch/Devices/u9200 (last edited 2013-08-14 17:21:56 by 79-119-113-230)