EXPERIMENTAL AND NOT YET WORKING!
USE AT YOUR OWN RISK!
- Recovery/Fastboot:
Hold down both Volume-Up and Volume-Down while turning the power on - Tools
- MediaTek: http://mtk2000.ucoz.ru/load
- Drivers: http://mtk2000.ucoz.ru/load/drajvera/1
- Software: http://mtk2000.ucoz.ru/load/soft/4
- MTK Droid Root & Tools (MDRT) (Windows Only):
- http://forum.xda-developers.com/showthread.php?t=2160490
- Windows USB Driver:
- Standard:
- On Device:
- On Stock ROM, Settings->Storage->Connect As CD-ROM->Built-in CD-ROM
- Open Windows Explorer to CD-ROM
- Install LenovoUsbDriver_autorun_1.0.8.exe
- Download:
http://lenovo-forums.ru/topic/3057-%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-lenovo-yoga-tablet/
- On Device:
- USB VCOM Driver (for [below] SmartPhone Flash Tool):
- Standard:
- Tutorials:
- How To Root: http://forum.xda-developers.com/showpost.php?p=38337401&postcount=5
- Problem Solving: http://forum.xda-developers.com/showpost.php?p=38369102&postcount=11
- Backup and Flash: http://forum.xda-developers.com/showpost.php?p=44509214&postcount=407
- Install ClockWorkMod Recovery: http://forum.xda-developers.com/showpost.php?p=44660171&postcount=417
- SmartPhone Flash Tool (SPFT) (Windows Only):
- Latest: v3.1328.0.sn183 http://www.google.com/webhp?q=SP+Flash+Tool
- Tutorial: http://forum.xda-developers.com/showthread.php?t=1982587
- Source Code (C/C++): v3.1320.0.175 http://mtk2000.ucoz.ru/load/soft/soft_mtk/sp_flash_tool_src/5-1-0-151
- MTKRomStudio?
- MediaTek: http://mtk2000.ucoz.ru/load
- Update .ZIP:
Yoga_tablet_10_A422_000_040_131023_WW_WIFI.rar: - Processor: MediaTek MT8125 (or MT8389) 1.2GHz Quad-Core
- NOTE: MediaTek packs their boot.img and recovery.img a little differently.
Specifically the *-ramdisk.gz files have a 512 byte header that needs to be removed.
Something like the following needs to be done:
- NOTE: MediaTek packs their boot.img and recovery.img a little differently.
mkdir recovery cp Yoga_tablet_10_A422_000_040_131023_WW_WIFI/target_bin/target_bin/recovery.img . unpackbootimg -i recovery.img mkdir ramdisk cd ramdisk mv ../recovery.img-ramdisk.gz ../recovery.img-ramdisk-raw.gz dd bs=512 skip=1 if=../recovery.img-ramdisk-raw.gz of=../recovery.img-ramdisk.gz gunzip -c ../recovery.img-ramdisk.gz | cpio -i
- The first 512 bytes of the kernel files might also need to be removed.
- The b8000/b6000 kernel code seems to be based off of the MT6589 CPU:
Examples:- https://github.com/TeamYogaBlade/lenovo_b6000-8000_source/tree/master/mediatek/config/mt6589
- https://github.com/TeamYogaBlade/lenovo_b6000-8000_source/tree/master/mediatek/custom/mt6589
- https://github.com/TeamYogaBlade/lenovo_b6000-8000_source/tree/master/mediatek/platform/mt6589
- Devices with the same processor (* = unconfirmed):
- Lenovo Yoga 10" (b8000)
http://shop.lenovo.com/us/en/tablets/ideatab/yoga/yoga-10/#techspecs - Lenovo Yoga 8" (b6000) http://shop.lenovo.com/us/en/tablets/ideatab/yoga/yoga-8/#techspecs
- Lenovo S6000
http://shop.lenovo.com/us/en/tablets/ideatab/s-series/s6000/#techspecs - Lenovo S5000 http://shop.lenovo.com/us/en/tablets/ideatab/s-series/s5000#techspecs
- Lenovo A3000
http://shop.lenovo.com/us/en/tablets/ideatab/a-series/a3000/#techspecs - Lenovo A2107A
- ASUS MeMO Pad HD 7
http://www.asus.com/us/Tablets_Mobile/ASUS_MeMO_Pad_HD_7#specifications - GoClever Aries 785 (MT8389)
http://www.goclever.com/uk/products,c1/tablet,c5/aries-785,a149.html#specification
- Lenovo Yoga 10" (b8000)
- Android Generic:
- CyanogenMod Specific:
- Apparently using "the latest" version of any 3rd party tool in the build process is a bad thing.
ex: Using Ubuntu 13.x w/ OpenJDK7
You are asking for trouble if you use versions of the tools that are not mentioned!
- Install 64-bit Ubuntu 12.04 on a VM (4GB RAM, 64GB Disk)
http://wiki.cyanogenmod.org/w/Doc:_using_virtual_machines#Install_VirtualBox - Download and Install VirtualBox + Extensions: https://www.virtualbox.org/wiki/Downloads
- Download the Ubuntu 12.04 64-bit: http://releases.ubuntu.com/precise/ubuntu-12.04.3-desktop-amd64.iso
- Create and Install Ubuntu (recommend 2 CPU, 4GB RAM, 100GB Disk, 32MB Video)
- Install VirtualBox Guest Additions on VM
- Follow http://source.android.com/source/initializing.html#installing-the-jdk
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" sudo apt-get update sudo apt-get install sun-java6-jdk
- Follow http://source.android.com/source/initializing.html#installing-required-packages-ubuntu-1204
- Follow anything else that is relevant in http://source.android.com/source/initializing.html
- Install the necessary build tools:
sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so sudo apt-get install android-tools-adb android-tools-fastboot
- Set up Git/GitHub:
- Set up GitHub SSH keys: https://help.github.com/articles/generating-ssh-keys
ssh-keygen -t rsa -C "[email protected]" cd ~/.ssh ssh-add id_rsa sudo apt-get install xclip xclip -sel clip < ~/.ssh/id_rsa.pub
1. GitHub->SSH Keys->Add->Paste
1. Test that everything is set up:
ssh -T [email protected]
- git config --global user.email "[email protected]"
- git config --global user.name "paulpv"
- Get the all important "repo" tool:
mkdir -p ~/bin curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
- gedit ~/.bashrc &
export USE_CCACHE=1 export PS1="[\t] \u@\h> " export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ export PATH=$PATH:$JAVA_HOME/bin export PATH=$HOME/bin:$PATH export PATH=$PATH:$HOME/android/system/out/host/linux-x86/bin
- Close the current Terminal and open a new Terminal
- Get the source code:
mkdir -p ~/android/system cd ~/android/system/ repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1 repo sync -j4
- Wait several hours!
- Prepare the build environment
cd ~/android/system/vendor/cm ./get-prebuilts cd ~/android/system/ make -j4 otatools
- Wait several hours!
- Get/Create android_device_lenovo_b8000 repo:
- Creator: Customize mkvendor.sh for MediaTek CPU
- gedit build/tools/device/mkvendor.sh
- Change:
BOOTIMAGE=$3
-to-
BOOTIMAGE=$3 SKIP=$4
Change:
pushd ramdisk > /dev/null gunzip -c ../$BOOTIMAGEFILE-ramdisk.gz | cpio -i
-to-
pushd ramdisk > /dev/null if [ ! -z "$SKIP" ] then # Definitely discard the first $SKIP bytes mv ../$BOOTIMAGEFILE-ramdisk.gz ../$BOOTIMAGEFILE-ramdisk-raw.gz dd bs=$SKIP skip=1 if=../$BOOTIMAGEFILE-ramdisk-raw.gz of=../$BOOTIMAGEFILE-ramdisk.gz fi gunzip -c ../$BOOTIMAGEFILE-ramdisk.gz | cpio -i
1. adb pull /system/build.prop
ro.product.manufacturer=LENOVO ro.product.device=B8000 ro.product.board=blade10_row_wifi
1. build/tools/device/mkvendor.sh lenovo b8000 recovery.img 512
- Contributor: Create a local manifest for the unofficial b8000 code
- gedit ~/android/system/.repo/local_manifests/lenovo_b8000.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/lenovo/b8000" name="TeamYogaBlade/android_device_lenovo_b8000" remote="github" revision="master"/>
<project path="kernel/lenovo/b8000" name="TeamYogaBlade/android_kernel_lenovo_b8000" remote="github" revision="master"/>
<project path="kernel/lenovo/b8000/kernel_source" name="TeamYogaBlade/lenovo_b6000-8000_kernel_source" remote="github" revision="master"/>
</manifest>
- Set up your CM device:
. build/envsetup.sh lunch
- Select "device_b8000"
- Build a recovery image
make recoveryimage
Progress:
- I am having a hard time compiling the following kernel elements:
- mediatek/custom/out/lenovo89_tb_x10_jb2/kernel/usb/
/bin/sh: 1: [: mediatek/custom/out/lenovo89_tb_x10_jb2/kernel/usb/: unexpected operator
- net/netfilter/xt_mark.o
CC net/netfilter/xt_mark.o net/netfilter/xt_mark.c:16:37: fatal error: linux/netfilter/xt_mark.h: No such file or directory compilation terminated. make[2]: *** [net/netfilter/xt_mark.o] Error 1
Fixed by commenting out (for now)
- net/netfilter/xt_connmark.o
CC net/netfilter/xt_connmark.o net/netfilter/xt_connmark.c:29:41: fatal error: linux/netfilter/xt_connmark.h: No such file or directory compilation terminated. make[2]: *** [net/netfilter/xt_connmark.o] Error 1
Fixed by commenting out (for now)
- net/netfilter/xt_HL.o
make[2]: *** No rule to make target `net/netfilter/xt_HL.o', needed by `net/netfilter/built-in.o'. Stop.
Fixed by commenting out (for now)
Other References:
- Using my old Galaxy Epic and LGOG as a guide:
- http://source.android.com/source/initializing.html
- boot/recovery info:
- MediaTek specific ideas:
- https://github.com/bgcngm/mtk-tools
- http://forum.xda-developers.com/showthread.php?t=1587411
- https://github.com/oppo-source/R819-Kernel-Source-4.2/tree/master/
- https://github.com/varunchitre15/MT6589_kernel_source/tree/master/
- https://github.com/Shr3ps/kernel_acer_a1-810_MT8125
- https://github.com/torvalds/linux
- Determine if we need an android_vendor_lenovo_b8000 repo; if so then create it
- Set up the b8000 version of http://wiki.cyanogenmod.org/w/Template:Device_build
http://wiki.cyanogenmod.org/w/Documentation#Using_the_Device_Template - Set up a local manifest to pull from GitHub: http://wiki.cyanogenmod.org/w/Local_manifest