[HOW-TO] Building CM10, AOKP & TeamBaked For The JB Bootloader [Ubuntu 12.04+ 64-bit]
As many of you know, I no longer have my Transformer Prime, and hence cannot continue development for this device. So until the official CM10, AOKP and TeamBaked ROMs are updated to support the new JellyBean bootloader, as a final useful contribution to this device, I decided to provide a how-to guide to help people make their own builds.
This guide assumes that you have some experience building ROMs for Android and that you are comfortable with Linux. It is focused towards building on Ubuntu 12.04+ 64-bit.
1. Prepare the system (common for CM10, AOKP & TeamBaked)
a. Install Java JDK6
b. Install required applications
c. Get the repo binary
2. Building CM10
a. Get the CM10 source
b. Get my JB device, kernel & vendor source trees (You could use any other, just make sure it includes the changes needed for the JB bootloader and has the 3.1 kernel)
c. Comment out CMUpdater since this is not an official build (No harm in leaving it there as long as people are instructed not to use it)
d. Resync & build
3. Building TeamBaked
a. Get the TeamBaked source
b. Delete the tf201 directories
c. Get my JB device, kernel & vendor source trees (You could use any other, just make sure it includes the changes needed for the JB bootloader and has the 3.1 kernel)
d. Resync & build
4. Building AOKP
a. Get the AOKP source
b. Get my JB device, kernel & vendor source trees (You could use any other, just make sure it includes the changes needed for the JB bootloader and has the 3.1 kernel)
c. Add tf201 to the vendor & build setup
Add this line vendorsetup.sh below add_lunch_combo aokp_tf101-userdebug
Add this line vendorsetup.sh below $(LOCAL_DIR)/tf101.mk \
Add these line to tf201.mk
d. Resync & build
As many of you know, I no longer have my Transformer Prime, and hence cannot continue development for this device. So until the official CM10, AOKP and TeamBaked ROMs are updated to support the new JellyBean bootloader, as a final useful contribution to this device, I decided to provide a how-to guide to help people make their own builds.
This guide assumes that you have some experience building ROMs for Android and that you are comfortable with Linux. It is focused towards building on Ubuntu 12.04+ 64-bit.
1. Prepare the system (common for CM10, AOKP & TeamBaked)
a. Install Java JDK6
Code:
$ wget https://raw.github.com/flexiondotorg/oab-java6/master/oab-java.sh
$ chmod +x oab-java.sh
$ sudo ./oab-java.sh
$ sudo apt-get install sun-java6-jdk
b. Install required applications
Code:
$ sudo apt-get install git-core 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 schedtool pngcrush
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
c. Get the repo binary
Code:
$ mkdir -p ~/bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
2. Building CM10
a. Get the CM10 source
Code:
$ mkdir -p ~/CM10
$ cd ~/CM10
$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean
$ repo sync -j8
b. Get my JB device, kernel & vendor source trees (You could use any other, just make sure it includes the changes needed for the JB bootloader and has the 3.1 kernel)
Code:
//JB device source to device/asus/tf201
$ mkdir -p ~/CM10/device/asus
$ cd ~/CM10/device/asus
$ git clone git://github.com/craigacgomez/android_device_asus_tf201.git -b cm_jb tf201
//JB kernel source to kernel/asus/tf201
$ mkdir -p ~/CM10/kernel/asus
$ cd ~/CM10/kernel/asus
$ git clone git://github.com/craigacgomez/android_kernel_asus_tf201 -b 10.4.2.15-nvtegra tf201
//JB vendor source to vendor/asus/tf201
$ mkdir -p ~/CM10/vendor/asus
$ cd ~/CM10/vendor/asus
$ git clone git://github.com/craigacgomez/vendor_proprietary_asus_tf201 -b jellybean tf201
c. Comment out CMUpdater since this is not an official build (No harm in leaving it there as long as people are instructed not to use it)
Code:
$ cd ~/CM10/vendor/cm/config/
$ gedit common.mk [comment the line which says CMUpdater \]
d. Resync & build
Code:
$ cd ~/CM10
$ repo sync -j8
$ sh vendor/cm/get-prebuilts
$ . build/envsetup.sh && brunch tf201
3. Building TeamBaked
a. Get the TeamBaked source
Code:
$ mkdir -p ~/BAKED
$ cd ~/BAKED
$ repo init -u https://github.com/TeamBAKED/platform_manifest.git -b jb
$ repo sync -j8
b. Delete the tf201 directories
Code:
$ mkdir -p ~/BAKED/device/asus
$ rm -rf tf201
$ mkdir -p ~/BAKED/kernel/asus
$ rm -rf tf201
$ mkdir -p ~/BAKED/vendor/asus
$ rm -rf tf201
c. Get my JB device, kernel & vendor source trees (You could use any other, just make sure it includes the changes needed for the JB bootloader and has the 3.1 kernel)
Code:
//JB device source to device/asus/tf201
$ mkdir -p ~/BAKED/device/asus
$ cd ~/BAKED/device/asus
$ git clone git://github.com/craigacgomez/android_device_asus_tf201.git -b blackbean_jb tf201
//JB kernel source to kernel/asus/tf201
$ mkdir -p ~/BAKED/kernel/asus
$ cd ~/BAKED/kernel/asus
$ git clone git://github.com/craigacgomez/android_kernel_asus_tf201 -b 10.4.2.15-nvtegra tf201
//JB vendor source to vendor/asus/tf201
$ mkdir -p ~/BAKED/vendor/asus
$ cd ~/BAKED/vendor/asus
$ git clone git://github.com/craigacgomez/vendor_proprietary_asus_tf201 -b jellybean tf201
d. Resync & build
Code:
$ cd ~/BAKED
$ repo sync -j8
$ . build/envsetup.sh && brunch tf201
4. Building AOKP
a. Get the AOKP source
Code:
$ mkdir -p ~/AOKP
$ cd ~/AOKP
$ repo init -u https://github.com/AOKP/platform_manifest.git -b jb
$ repo sync -j8
b. Get my JB device, kernel & vendor source trees (You could use any other, just make sure it includes the changes needed for the JB bootloader and has the 3.1 kernel)
Code:
//JB device source to device/asus/tf201
$ mkdir -p ~/AOKP/device/asus
$ cd ~/AOKP/device/asus
$ git clone git://github.com/craigacgomez/android_device_asus_tf201.git -b aokp_jb tf201
//JB kernel source to kernel/asus/tf201
$ mkdir -p ~/AOKP/kernel/asus
$ cd ~/AOKP/kernel/asus
$ git clone git://github.com/craigacgomez/android_kernel_asus_tf201 -b 10.4.2.15-nvtegra tf201
//JB vendor source to vendor/asus/tf201
$ mkdir -p ~/AOKP/vendor/asus
$ cd ~/AOKP/vendor/asus
$ git clone git://github.com/craigacgomez/vendor_proprietary_asus_tf201 -b jellybean tf201
c. Add tf201 to the vendor & build setup
Code:
$ cd ~/AOKP/vendor/aokp
$ gedit vendorsetup.sh
Code:
add_lunch_combo aokp_tf201-userdebug
Code:
$ cd ~/AOKP/vendor/aokp/products
$ gedit AndroidProducts.mk
Code:
$(LOCAL_DIR)/tf201.mk \
Code:
$ cd ~/AOKP/vendor/aokp/products
$ touch tf201.mk
$ gedit tf201.mk
Code:
# Inherit device configuration for tf201.
$(call inherit-product, device/asus/tf201/full_tf201.mk)
# Inherit some common AOKP stuff.
$(call inherit-product, vendor/aokp/configs/common_tablet.mk)
$(call inherit-product, vendor/aokp/configs/gsm.mk)
PRODUCT_NAME := aokp_tf201
PRODUCT_DEVICE := tf201
PRODUCT_BRAND := asus
PRODUCT_MODEL := Transformer Prime TF201
PRODUCT_MANUFACTURER := asus
PRODUCT_BUILD_PROP_OVERRIDES += \
PRODUCT_NAME=EeePad \
BUILD_FINGERPRINT="asus/US_epad/EeePad:4.1.1/JRO03C/US_epad-10.4.2.15-20120917:user/release-keys" \
PRIVATE_BUILD_DESC="US_epad-user 4.1.1 JRO03C US_epad-10.4.2.15-20120917 release-keys" \
PRODUCT_COPY_FILES += \
vendor/aokp/prebuilt/bootanimation/bootanimation_1280_800.zip:system/media/bootanimation.zip
d. Resync & build
Code:
$ cd ~/AOKP
$ repo sync -j8
$ . build/envsetup.sh && brunch tf201
Last edited: