These instructions have been copied from the Cyanogenmod Wiki, titled “How to compile CyanogenMod for Bravo (HTC Desire)”
This how-to was written for Ubuntu 10.04 & Ubuntu 10.10, Bravo, CyanogenMod 7.x (Gingerbread), on 2 February 2010.
Contents[hide] |
Prepare the Build Environment
- NOTE: You only need to do these steps the first time you build. If you previously prepared your build environment, skip to Copy proprietary files.
Install the ADB
- Install the Android SDK.
Install the Build Packages
Install using the package manager of your choice:
For 32-bit & 64-bit systems:
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[/code]For 64-bit only systems:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib[/code]NOTE:
gcc-4.3-multilib g++-4.3-multilib[/code]
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:add-apt-repository "deb http://archive.canonical.com/ maverick partner"[/code]Of course in an ssh environment without root access you'd have to compile required packages by yourself!
Create the Directories
You will need to set up some directories in your build environment.
To create them:
mkdir -p ~/bin[/code]mkdir -p ~/android/system[/code]Install the Repository
Enter the following to download make executable the "repo" binary:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo[/code]chmod a+x ~/bin/repo[/code]NOTE:
You may need to reboot for these changes to take effect.
Now enter the following to initialize the repository:
cd ~/android/system/[/code]repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
repo sync -j16[/code]Copy proprietary files
NOTE:
This only needs done the first time you build. If you have already done these steps, you may skip to Download RomManager.
You will need to have a Bravo with a working copy of CyanogenMod install and ADB working on the computer. This script will copy the proprietary files from the device.
Connect the device to the computer and ensure that ADB is working properly.
cd ~/android/system/device/htc/bravo/[/code]./extract-files.sh[/code]NOTE: If some hardware isn't working, like camcorder or FM radio, you will need to find the updated prop blobs.
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:
~/android/system/vendor/cyanogen/get-rommanager[/code]Building CyanogenMod
Check for updates
First, check for updates in the source:
cd ~/android/system/[/code]repo sync[/code]Configure Build & Compile
Now, the environment must be configured to build and the ROM compiled, from code, for the Bravo.
. build/envsetup.sh
brunch bravo[/code]Install
- Copy your .zip file from ~/android/system/out/target/product/bravo/update.cm-XXXXX-signed.zip to the root of the SD card.
- Optional: Download Google Apps for CyanogenMod 7 and place it on the root of the SD card.
- Flash both of these .zip files from recovery.
Joel G Mathew, known in tech circles by the pseudonym Droidzone, is an opensource and programming enthusiast.
He is a full stack developer, whose favorite languages are currently Python and Vue.js. He is also fluent in Javascript, Flutter/Dart, Perl, PHP, SQL, C and bash shell scripting. He loves Linux, and can often be found tinkering with linux kernel code, and source code for GNU applications. He used to be an active developer on XDA forums, and his tinkered ROMS used to be very popular in the early 2000s.
His favorite pastime is grappling with GNU compilers, discovering newer Linux secrets, writing scripts, hacking roms, and programs (nothing illegal), reading, blogging. and testing out the latest gadgets.
When away from the tech world, Dr Joel G. Mathew is a practising ENT Surgeon, busy with surgeries and clinical practise.