Welcome to the EzGingerbread Android Manifest.
EzGingerbread is an Android Gingerbread build for the Dream/Sapphire systems. While the idea is to keep the rom simple (ie, very little more than an official AOSP gingerbread build) there are various additional features to both (a) speed up the device and (b) make using the device more efficient
Much thanks is required to the following:
For a binary distribution of ezGingerbread please see the related thread on XDA-Developers
http://forum.xda-developers.com/showthread.php?t=882356
This is also your first stop for talking with other users of the rom for any required solutions, customizations, and installation guides.
Issues current to the project are on the Issues page https://github.com/ezterry/manifest-gingerbread-DS/issues
The additional development information is also available on XDA-Developers
Patches may be submitted via email or pull requests.
The rest of this guide will describe how to build ezGingerbread on your own system
Requirements x86 linux based computer Instructions assume amd64 running one of
Other environments and 32bit machines can build ezGingerbread but may require minor modifications
PART ONE: Packages Required
The following is based of the CyanogenMod wiki entry: http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Dream_%26_Sapphire
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 lzma
For 64-bit only systems:
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. (with the current
version of gcc/g++ installed)
Note: On Ubuntu 10.10, and variants, you need to enable the partner
repository to install sun-java6-jdk:
add-apt-repository "deb http://archive.canonical.com/ maverick partner"
PART TWO: preparing repo
A) make a directory for you android work example 'mkdir ~/android'
B) download repo into the newly created directory:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/android/repo
C) Make repo executable
chmod 0644 ~/android/repo
D) [optional] make a symlink to repo on your path; or move the binary to your path example:
sudo ln -s ~/android/repo /usr/local/bin/repo
A) Change directory into the new android directory
cd ~/android
B) create a directory for ezGingerbread:
mkdir ezGingerbread
C) cd ezGingerbread
D) init the git repo
repo init -u git://github.com/ezterry/manifest-gingerbread-DS.git -b gingerbread
(It will ask for email/Name answer real or fake)
E) sync the code
repo sync
F) This will take a while, please do not interrupt it.. even if it seems paused but network traffic continues
G) Copy sample build spec [Optional but required for squashed builds]
cp .repo/manifests/samples/buildspec.mk ./
You can edit this buildspec.mk to add extra options to your builds
Next we need to copy the Proprietary Files from an existing build into yourlocal tree
A) Download a known good version of ezGingerbread (most recent or the approved one below) and name it sapphire_update.zip in the root of the ~/android/ezGingerbread directory
curl http://sandbox.devnull.name/android/gingerbread/GINGERBREAD-DS-Beta-20110716.zip > sapphire_update.zip
B) Now extract proprietary files with the unzip-files.sh script
cd device/htc/sapphire/
./unzip-files.sh
cd ~/android/ezGingerbread
Note: if you have been asked to re-build the proprietary files, either because the autogenerated make script was updated, or a change in the files: run 'rm -rf vendor;repo sync;' before re-running the above.
Note this is an addition to the process as a pre-built kernel (same ones I use) are included in the general build thus if its your first time building I recommend skipping ahead to building, however here are the steps for building the ezgb kernel for those interested in kernel development
A) fetch the kernel code: 'device/htc/dream-sapphire/kernel/kernel_build.py fetch'
B) build the kernel 'device/htc/dream-sapphire/kernel/kernel_build.py build'
(fetch will always remove the entire kernel build directory and re-clone from github.. if you just wish to sync, run 'device/htc/dream-sapphire/kernel/kernel_build.py sync' followed by 'device/htc/dream-sapphire/kernel/kernel_build.py clean' to remove the build work directories and bring the git repo up todate w/o re-downloading the entire kernel source tree)
If you wish to modify or change the kernel branch, before building you can cd to ezgb-kernel/src and locally modify the git repository
A) run '. build/envsetup.sh'
B) run 'lunch' and select full_sapphire-userdebug (shortcuts you will find are 'lunch full_sapphire-userdebug'; or 'lunch 4' {prior to 2.3.7 it was 'lunch 3'})
C) run 'make -j<Number of CPU cores in your computer +1> otapackage' for example if you have a quad code CPU: 'make -j5 otapackage' a dual core is 'make -j3 otapackage'
FYI: The -jN indicates the number of parallel threads make will run, but
using -j5 I assure all 4 cores are at 100% utilization .. important as it
can take 3-4h to build on a single core.
D) after you realize the build is done (ie fan on computer stopped working overtime) the flash-able image will be:
ls out/target/product/sapphire/full_sapphire-ota-eng.
so 'ls -l out/target/product/sapphire/full_sapphire-ota-eng*zip'
The resulting image will be the EBI0/EBI1/2708+ anykernel installer
Flash this image, followed by GAPPS and any other addon you desire and use as normal.
Now that you have the first build, here are some tips on keeping your codebase up to date
Simple resync:
repo sync
make clobber
make -j<Number of CPU cores in your computer +1> otapackage
Full refresh (using previous repo download):
cd ~/android/ezGingerbread
rm -rf `ls`
#now pick up with repo sync above; previous files will be re-used
Specific builds:
repo init has an '-m' tag (see 'repo help init') that can be used to specify a checkpoint for a specific build (run 'ls .repo/manifests/checkpoints/' for a list of these)
Note some checkpoints are using out of date git sources and may need some manual verification to re-build