[TUTORIAL][HOWTO] Building CyanogenMod 7 for the HTC Thunderbolt [FINAL] - Thunderbolt Android Development

How to build your own CyanogenMod 7:
Install the Build Packages
Install using the package manager of your choice:
For 32-bit & 64-bit systems:
Code:
git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
For 64-bit only systems:
Code:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
NOTE: gcc-4.3-multilib g++-4.3-multilib is no longer available for Ubuntu 11.04 64-bit, but should still build without issue.
NOTE: On Ubuntu 10.10, and variants, you need to enable the parter repository to install sun-java6-jdk:
Code:
add-apt-repository "deb http://archive.canonical.com/ maverick partner"
Create the Directories
You will need to set up some directories in your build environment.
To create them:
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
Install the Repository
Code:
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo
chmod a+x ~/bin/repo
PATH=~/bin:$PATH
Now enter the following to initialize the repository:
Code:
cd ~/android/system/
repo init -u git://github.com/ProTekk/android.git -b gingerbread
repo sync -j16
Copy proprietary files
Code:
git clone git://github.com/koush/proprietary_vendor_htc.git ~/android/system/vendor/htc
Download RomManager
NOTE: This only needs to be done when an update to RomManager is released. If you are-up-to date, you may skip to Building CyanogenMod.
Download RomManager which is needed by the build:
Code:
cd ~/android/system/device/htc/mecha
~/android/system/vendor/cyanogen/get-rommanager
Check for updates
First, check for updates in the source:
Code:
cd ~/android/system/
repo sync
Configure Build & Compile
Now, the environment must be configured to build and the ROM compiled, from code, for the Thunderbolt.
Code:
. build/envsetup.sh && brunch mecha
Now for the lazy people who don't want to type all that crap:
Download and run the new script: http://fzservers.com/newmecha.sh
You can do whatever you like while it runs. If you have never created a CyanogenMod repo on your local system then go out to dinner, grab some coffee, call your mother or do something time consuming because this will be a LONG wait depending on your Internet connection and system performance. The build will run as soon as the script sets everything up and again it is LOOOONG depending on the performance of your system.
Everything will be located in
Code:
~/android/system
Once it's done you can locate the flashable .zip in the "out" directory of your CyanogenMod repo. Happy crackflashing to all!

Reserved....

Fixed an issue with the build script. Please redownload it and try again.

Related

[GUIDE] Compile CM9 for the Thunderbolt

The purpose of this guide is to show the steps required to compile CM9 specifically for the Thunderbolt. This may be adapted for other ROMs in the future. However, I will not describe how to setup your development environment as that information changes based on distribution versions and has been done many times over. A few good references are here, with an example of mine at the end of this post:
CyanogenMod Wiki - Learning to Build CyanogenMod
CyanogenMod Build Guide for Nexus 7 (Use as an example)
My goal is to aid others in development as the steps to get everything working on the Thunderbolt are not straight-forward unless you know what they are. Even though I had plenty of sources when I started, I still had to spend many hours to get them working. The camera and radio need some extra steps, but those are now streamlined for both my benefit and everyone else's.
I added these steps on gist.github as scripts, although I have not tested them as such. It would be best if you do each line at a time to better understand what you're doing.
Build CM9 Thunderbolt - First Time Only
Build CM9 Thunderbolt - Subsequent Builds
For the first build only:
Code:
mkdir android
cd android/
repo init -u git://github.com/CyanogenMod/android.git -b ics
mkdir -p .repo/local_manifests
wget https://raw.github.com/jblack248/android/ics/local_manifest.xml -O .repo/local_manifests/cm_mecha.xml
repo sync
# Cherry-pick frameworks/base/libs/ui commit from Twisted
cd frameworks/base/ && git fetch http://review.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/85/13285/8 && git cherry-pick FETCH_HEAD && cd ../..
# checkout branch in local trees
repo start ics device/htc/common device/htc/mecha device/htc/msm7x30-common hardware/qcom/camera kernel/htc/mecha-3.0 packages/apps/Camera vendor/htc/mecha vendor/htc/mecha-radio
# download prebuilts
cd vendor/cm/
./get-prebuilts
cd ../..
. build/envsetup.sh
lunch cm_mecha-userdebug
# Make build then rebuild with radio - read script in vendor/htc/mecha-radio if interested
mka bacon && . vendor/htc/mecha-radio/liquid_telephony.sh
For subsequent builds:
Code:
repo sync
# Cherry-pick frameworks/base/libs/ui commit from Twisted
cd frameworks/base/ && git fetch http://review.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/85/13285/8 && git cherry-pick FETCH_HEAD && cd ../..
. build/envsetup.sh
lunch cm_mecha-userdebug
# Make build then rebuild with radio - read script in vendor/htc/mecha-radio if interested
mka bacon && . vendor/htc/mecha-radio/liquid_telephony.sh
How I set up the build environment on Xubuntu 13.04 64-bit - Gist.github:
Code:
echo "Install Android Development Tools and Dependencies"
sudo apt-get install -y android-tools-adb android-tools-fastboot git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev lib32z1-dev pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib schedtool libc6-dev-i386 ccache
echo "Link zconf.h to fix Android compile issues in 13.04"
ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include
echo "Installing Development Tools"
sudo apt-get install -y meld gedit-plugins git gitk gtkhash
echo "Customize .bashrc"
echo "export USE_CCACHE=1" >> ~/.bashrc
echo "ccache -M 20G > /dev/null 2>&1" >> ~/.bashrc
# these locations will be different for you, depending on where you installed the SDK
# echo "export PATH=${PATH}:~/Documents/Development/bin:~/Documents/Development/adt-bundle-linux-x86_64/sdk/tools:~/Documents/Development/adt-bundle-linux-x86_64/sdk/platform-tools"
Just a note; for the sake of newbs you may want to include instructions on getting the repo script as it doesn't just work OOB.
Code:
remote object '/system/lib/libcamera.so' does not exist
remote object '/system/lib/libcneapiclient.so' does not exist
remote object '/system/lib/libcneqmiutils.so' does not exist
remote object '/system/etc/firmware/a225p5_pm4.fw' does not exist
remote object '/system/etc/firmware/a225_pfp.fw' does not exist
remote object '/system/etc/firmware/a225_pm4.fw' does not exist
remote object '/system/etc/firmware/a300_pfp.fw' does not exist
remote object '/system/etc/firmware/a300_pm4.fw' does not exist
I got this when running ./extract-files.sh although all other files extracted fine, and I'm assuming at the very least libcamera.so is 100% necessary.
You are correct, libcamera.so is especially needed. You can either copy the files manually or modify the extract-files.sh script and extract the ROM zip to a folder to copy the files locally instead of using ADB. Change 'adb pull' to 'cp' and modify the path of the first parameter to the ROM zip folder.
I referenced a couple other guides that help you get the development set up, even the repo bin. That information changes, has been done over many times, and isn't as useful in the long run unless I micro-manage this guide. If I get a chance I might flesh this out a little, but I'm not sure how much of a desire there is for this. I'll help where I can, though.
I updated the OP with fixes to make sure everything works automatically. You no longer have to use the extract-files.sh script (or setup adb) since I made a vendor repo to include all of those files for you. Thanks to santod and others for pointing out a number of problems.
Note: As of 2013-06-29 CM9 is in a broken state as we're getting the kernel and stock OTA blobs to work properly.

[Guide] How Can i Make My Own LiteStalk 4.4 builds

LITESTALK ​​
Litestalk is for users who want a stable better batttery life more free ram pleasent kitkat experience overall
for thier devices it is the rom based on "What u See is What u Get conecpt" a simple rom which user can customise it like he want
So your interested in Building..! Follow this guide! For any 2011 xperia device!
Setup to build - This section can be skipped if youve ever built anything before. This is for first time build setup.
1. From your root terminal location, type the following:
Code:
sudo apt-get install curl git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Download google repo tool
2. Type: mkdir ~/bin
3. Type: PATH=~/bin:$PATH
4. Type: curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
5. Type: chmod a+x ~/bin/repo
Code:
[B][U]From terminal[/U][/B]
1. mkdir kk
2. cd kk
3. mkdir system
4. cd system
5. repo init -u git://github.com/LiteStalk/android.git -b cm-11.0
8. repo sync
9. curl https://raw.github.com/LegacyXperia/local_manifests/cm-11.0/updates.sh > ~/beanstalk/system/updates.sh
10. chmod a+x updates.sh
11. ./updates.sh
12. cd ~/kk/system/vendor/cm
13. ./get-prebuilts
14. cd ~/beanstalk/system
15. . build/envsetup.sh
16. breakfast anzu
17. brunch anzu
- you can chnage device name to yours

[CLOSED][How to][Build CMB ROMS][TF300T][Mint64bit]

This will guide you thought the setup of Mint. The setup of your build environment, and finely the output of a flashable CMB ROM for your 700
First anything that starts with a bullet point is just for your reference.. Do not copy these things into your bash window...
Anything that is a code is copied one line at a time into your bash window and than enter
Now Install Mint 64 bit and a PC.. We will need at least a 250 GB hard drive...
This is a work in progress so let me know if anyone has any questions...
You can Find Mint here Click Me
Update System
Code:
sudo apt-get update
Code:
sudo apt-get upgrade
Build Env
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl
Code:
sudo apt-get install libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc android-tools-fastboot android-tools-adb
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib meld ia32-libs lzop ccache gedit
Code:
mkdir -p ~/bin
Code:
mkdir -p ~/android/system
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
export PATH=${PATH}:~/bin
Code:
gedit ~/.bashrc
Copy & Paste at bottom of bashrc on its own line
Code:
export PATH=${PATH}:~/bin
END-Paste
Code:
cd ~/android/system/
Code:
repo init -u git://github.com/cmbroms/platform_manifest.git -b kk4.4
You will be prompt to give your email and name just follow the steps on screen
Prepare to wait for a massive download 3 to 10 hours depending on your internet speed...
Code:
repo sync
Code:
cd ~/android/system/vendor/cmb
Code:
./get-prebuilts
Java
Code:
su
Code:
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
Code:
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
Code:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
Code:
apt-get update
Code:
apt-get install oracle-java6-installer
Code:
exit
Code:
sudo apt-get install oracle-java6-set-default
Ccache
Code:
gedit ~/.bashrc
Copy & Paste at bottom of bashrc on its own line
Code:
export USE_CCACHE=1
Code:
export CCACHE_DIR=~/ccache
END-Paste
Code:
source ~/.bashrc
Code:
ccache -M 50G
Building a ROM
Code:
cd ~/android/system
Make sure your in sync with the repo, you will do this every time right before you build.
Code:
repo sync
Code:
source build/envsetup.sh
Code:
lunch
Pick the number of the rom you would like to build
I maintain the 700,300,m7vzw so those are the only ones I can help with
the -j* is how may cpu cores you would like to give to the build process
So -j2 would tell the build process that you have 2 core you would like to use to build
Code:
make clean && make bacon -j2
The flash-able zip will be in the out folder of your build directory
Code:
XDA:DevDB Information
How to build CMB ROM for your TF300T, a Tool/Utility for the Asus Transformer TF300T
Contributors
lj50036
Version Information
Status: Testing
Created 2014-01-17
Last Updated 2014-01-17
Sources
CMB github Click Me
ASOP Click Me
CM wiki Click Me
Java Click Me
Reserved
Download Tab
I posted a downloadable .txt file, so you don't have to have a browser open, for the process.. The download is available in the download tab at the top of every page of this forum... Thx as always lj

[GUIDE] Build AICP MM6.0 for Samsung Galaxy S3

How to AICP11 6.0 for I9300​
You need:
PC/Laptop with 4GB RAM
Good internet connection
Linux 64 Bit
Open the Terminal in your Linux distribution and copy the following command:
Code:
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
Creating directories:
Code:
mkdir -p ~/bin
mkdir -p ~/AICP
Install repo:
Code:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Initialize the AICP source repository:
Code:
cd ~/AICP
repo init -u https://github.com/AICP/platform_manifest.git -b mm6.0
Download the source code:
Code:
repo sync
Download device-specific files:
Code:
. build/envsetup.sh
breakfast i9300
Start the build:
Code:
brunch i9300
Build will be in: AICP/out/target/product/i9300
Reserved
Reserved

[COMPLETE][NOOB-FRIENDLY] TWRP COMPILE GUIDE - MSM/MTK. {CyanogenMod}

Lets go straight into topic.
Requirements.
Ubuntu 14.04 or + required.
Official CM 13 support.
1: Setting up Environment.
1.1 Build Essentials
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip
1.2 Settingup Java
Code:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
Code:
[B]2. Download Repo.[/B]
Code:
mkdir WORKING-DIR && cd WORKING-DIR
repo init -u https://github.com/lj50036/platform_manifest_twrp_cm -b twrp-13.0
repo sync -j# --force-sync (replace '#' with Number of Cores + '1' )
3.Cloning
you can find your device tree @ github.com/CyanogenMod
Mine: Sprout! Android One so https://github.com/CyanogenMod/android_device_google_sprout/tree/cm-13.0
mkdir -p device/<your-brand>/<codename>
example:
Code:
mkdir -p device/google/sprout4
git clone https://github.com/CyanogenMod/android_device_google_sprout.git -b cm-13.0 device/google/sprout4
open cm.dependencies file you will find the additional repository required: for me sprout-common
you will find it on github.com/CyanogenMod
you can clone it anywhere.
4.Merging Common and Device Tree
open cm.dependencies in device tree. empty all the text in it!.
go to common tree if MTK Device: common/rootdir/
if MSM Device: common/rootdir/etc/
copy and if-needed replace all rootdir files from common to device tree.
Open BoardConfig.mk in Device Tree
Open BoardConfigCommon.mk in Common Tree
Add All the missing text in device tree from common tree.
if vendorsetup.sh file is not there in device tree then make a file named vendorsetup.sh
open vendorsetup.sh, add this lines in same format with your device requirements.
add_lunch_combo cm_<your-codename>-eng
add_lunch_combo cm_<your-codename>-userdebug
5. Deleting Unwanted lines which will cause errors while compiling!
open cm.mk, device.mk, <your-codename>.mk, if-exist full_<your-codename>.mk any other .mk files.
delete all the lines which are calling vendor, kernel and any other bull crap!.
6. Adding Prebuilt-kernel Instead of Source
Download Latest cm-nightly-<your-codename>.zip
extract boot.img from zip
unpack the boot.img using carlivkitchen
open extracted dir, copy <recovery-file-name>-kernel to devicetree/rootdir/
rename <recovery-file-name>-kernel to kernel
open BoardConfig.mk in device tree
go to #kernel
you will find TARGET_KERNEL_SOURCE := <make this line empty>
you will find TARGET_KERNEL_CONFIG := <make this line empty>
add line TARGET_PREBUILT_KERNEL := device/<your-brand>/<your-codename>/rootdir/kernel
save and exit
7.Compiling
cd WORKING-DIR
. build/envsetup.sh
you can run any command:
lunch cm_<your-codename>-eng
(or)
lunch cm_<your-codename>-userdebug
Once lunching is successfull.
make -j# recoveryimage (replace # with number of cores + 1)
8. OUT/target/product/<your-codename>/recovery.img

Categories

Resources