[GUIDE]Compile AOKP and CyanogenMod for HTC Sensation on Ubuntu (ONLY 64-bit)

Search This thread

blahbl4hblah

Inactive Recognized Developer
Oct 3, 2010
6,061
1,514
Los Angeles, CA
First of all, BIG BIG thanks to SparksCo for his guide for compiling CM7, I used his guide as a base for this

Credits:
CyanogenMod for giving their source to everyone
SparksCo for teaching me what I know
Vorbeth for releasing the original source for Sensation
Elelinux for his hardwork on adding things to the device tree

I'm making this guide for those who don't want to wait for a new CyanogenMod or AOKP build and want to build it themselves.
Working on both ubuntu 11.10 and 12.04

NOTE: DEPENDING ON YOUR COMPUTER'S HARDWARE, COMPILING TIME WILL BE DIFFERENT
If you have a MAC OSX, I do not have a guide for that as I don't have one.

Be aware for which part is for AOKP and CyanogenMod
I have put "AOKP" and "CyanogenMod" Labels to help


EVERYTHING THAT IS IN A BOX, OPEN TERMINAL AND ENTER THE COMMAND IN THAT SECTION

Guide Requirements:
- Computer
- Common Sense
- Some Linux Experience
- Ubuntu 64-bit Installed
- At least 4GB of ram with a dual core processor.


Required Software to Install:

For 32-bit and 64-bit System
Code:
sudo apt-get install git-core gnupg flex bison python rar original-awk gawk p7zip-full gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool xsltproc

For 64-bit System
Code:
sudo apt-get install g++-multilib lib32z1-dev ia32-libs lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib

Other Required Software:
Code:
sudo apt-get install libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils

Link libx11
Code:
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so

You must have a 1.6.x to compile on the ics branch of cyanogenmod.

MUST Install Java 1.6 (NOT Java 1.7):

1a. Download Java JDK for Linux 64-bit from Java site
Code:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Be sure to download (## will change if there's an update):
Code:
jdk-6u##-linux-x64.bin

1b. Move the downloaded Java JDK into your home directory

1c. Be sure to completely remove ALL OTHER JAVA

Don't worry if some things are asked to be installed just accept!

Code:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*

1d. Copy Java JDK into /opt/java/64
Code:
sudo mkdir -p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin /opt/java/64
sudo su -
cd /opt/java/64
chmod +x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
exit

1e. Add the needed PATH to .bashrc
Code:
gedit ~/.bashrc

Add these lines to .bashrc (Better to be near the top):
Code:
# Java PATHs
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin

Setting Up Android SDK

2a. Download Android SDK at http://developer.android.com/sdk/index.html

2b. Extract it to your home folder [Ex. ~/android/sdk]

2c. Add Android SDK Path

gedit ~/.bashrc
Enter the Following:
Code:
#Android PATH
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools

2d. Add Extra Path For Device:

sudo gedit /etc/udev/rules.d/99-android.rules (Text Editor will open up)
Enter this in it:
Code:
#Acer
SUBSYSTEM==usb, SYSFS{idVendor}==0502, MODE=0666
#ASUS
SUBSYSTEM==usb, SYSFS{idVendor}==0b05, MODE=0666
#Dell
SUBSYSTEM==usb, SYSFS{idVendor}==413c, MODE=0666
#Foxconn
SUBSYSTEM==usb, SYSFS{idVendor}==0489, MODE=0666
#Garmin-Asus
SUBSYSTEM==usb, SYSFS{idVendor}==091E, MODE=0666
#Google
SUBSYSTEM==usb, SYSFS{idVendor}==18d1, MODE=0666
#HTC
SUBSYSTEM==usb, SYSFS{idVendor}==0bb4, MODE=0666
#Huawei
SUBSYSTEM==usb, SYSFS{idVendor}==12d1, MODE=0666
#K-Touch
SUBSYSTEM==usb, SYSFS{idVendor}==24e3, MODE=0666
#KT Tech
SUBSYSTEM==usb, SYSFS{idVendor}==2116, MODE=0666
#Kyocera
SUBSYSTEM==usb, SYSFS{idVendor}==0482, MODE=0666
#Lenevo
SUBSYSTEM==usb, SYSFS{idVendor}==17EF, MODE=0666
#LG
SUBSYSTEM==usb, SYSFS{idVendor}==1004, MODE=0666
#Motorola
SUBSYSTEM==usb, SYSFS{idVendor}==22b8, MODE=0666
#NEC
SUBSYSTEM==usb, SYSFS{idVendor}==0409, MODE=0666
#Nook
SUBSYSTEM==usb, SYSFS{idVendor}==2080, MODE=0666
#Nvidia
SUBSYSTEM==usb, SYSFS{idVendor}==0955, MODE=0666
#OTGV
SUBSYSTEM==usb, SYSFS{idVendor}==2257, MODE=0666
#Pantech
SUBSYSTEM==usb, SYSFS{idVendor}==10A9, MODE=0666
#Philips
SUBSYSTEM==usb, SYSFS{idVendor}==0471, MODE=0666
#PMC-Sierra
SUBSYSTEM==usb, SYSFS{idVendor}==04da, MODE=0666
#Qualcomm
SUBSYSTEM==usb, SYSFS{idVendor}==05c6, MODE=0666
#SK Telesys
SUBSYSTEM==usb, SYSFS{idVendor}==1f53, MODE=0666
#Samsung
SUBSYSTEM==usb, SYSFS{idVendor}==04e8, MODE=0666
#Sharp
SUBSYSTEM==usb, SYSFS{idVendor}==04dd, MODE=0666
#Sony Ericsson
SUBSYSTEM==usb, SYSFS{idVendor}==0fce, MODE=0666
#Toshiba
SUBSYSTEM==usb, SYSFS{idVendor}==0930, MODE=0666
#ZTE
SUBSYSTEM==usb, SYSFS{idVendor}==19D2, MODE=0666


SUBSYSTEM=="usb", ATTRS{idVendor}=="####:####", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
TEST=="/var/run/ConsoleKit/database", \
RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}"

After this, close it and then enter:
Code:
sudo chmod +x /etc/udev/rules.d/99-android.rules

If your using ANY AOSP rom like AOKP or CM9 and CM10
Go into developer options and go to root access and change it from "Apps only" to Apps and ADB"

2e. Install Certain Android SDK Tools

Type:
Code:
android
Check Android SDK Tools and Android SDK platform-tools and Install them

Setting Up the .bashrc file

gedit ~/.bashrc
Enter the Following:
Code:
#Android PATH
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools

#Java PATH
export JAVA_HOME=/opt/java/64/jdk1.6.0_32
export PATH=$PATH:$JAVA_HOME/bin

3b. After your done setting this up, close .bashrc file.

Setup Workplace

4a. Download CyanogenMod 9 Source
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo (Reboot your computer after this)

4b. Add Repo Path

gedit ~/.bashrc

Enter the following:
Code:
export PATH=$PATH:~/bin

4c. Setup Necessary Source

For CyanogenMod 9
Code:
cd ~/android/system
repo init -u git://github.com/CyanogenMod/android.git -b ics

For CyanogenMod 10
Code:
cd ~/android/system
repo init -u git://github.com/CyanogenMod/android.git -b jellybean

4d. Download Necessary Source
Code:
repo sync

4e. Download Extra Needed Files
Code:
~/android/system/vendor/cm/get-prebuilts

Your Final .bashrc

It SHOULD Look Something Like This:
Code:
#Android PATH
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools
export PATH=$PATH:~/bin

#Java PATH
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin

Building CyanogenMod
Code:
. build/envsetup.sh; lunch cm_pyramid-userdebug; mka bacon

Making a New Build

Go inside to your source folder and delete the 'out' folder

THEN Do This:
Code:
repo sync

Code:
. build/envsetup.sh; lunch cm_pyramid-userdebug; mka bacon
 
Last edited:

blahbl4hblah

Inactive Recognized Developer
Oct 3, 2010
6,061
1,514
Los Angeles, CA
Compile AOKP Section

Be sure to follow the steps from the above post and ONLY use this instead of the part called 4c. Setup Necessary Source

FOR AOKP (ICS Version)
Code:
cd ~/android/system
repo init -u https://github.com/AOKP/platform_manifest.git -b ics

Temporary fix to build:
Code:
install -d prebuilt/android-arm/kernel

Then do:
Code:
curl -o prebuilt/android-arm/kernel/LINUX_KERNEL_COPYING -O https://raw.github.com/ezterry/kernel-biff-testing/ezgb-2636/COPYING

FOR AOKP (JELLYBEAN Version)
Code:
cd ~/android/system
repo init -u https://github.com/AOKP/platform_manifest.git -b jb

5b. Building AOKP
Code:
. build/envsetup.sh; lunch aokp_pyramid-userdebug; mka bacon
 
Last edited:

blahbl4hblah

Inactive Recognized Developer
Oct 3, 2010
6,061
1,514
Los Angeles, CA
Last edited:

n1kon

Senior Member
Mar 21, 2006
390
59
46
You running a nightly?

Sent from my HTC Sensation XE with Beats Audio using Tapatalk
 

matt95

Senior Member
Aug 8, 2010
5,962
2,370
Milan
hi man thank you for this guide, i got a problem
when i try to install the first files for sistem 64 bit i get this error:

Package awk is a virtual package provided by:
original-awk 2011-05-06-1
mawk 1.3.3-15ubuntu2
gawk 1:3.1.8+dfsg-0.1build1
You should explicitly select one to install.

E: Package 'awk' has no installation candidate
E: Unable to locate package 7zip
 

miniudavid

Senior Member
Aug 5, 2011
257
22
You say that it is not recommended to do it in a virtual machine. What if I got 8 gigs of memory? Could I try it?? Thanx

Sent from my Sensation using XDA App
 

webmasteryoda

Senior Member
Jun 29, 2011
80
18
Kula
mindstorming.ws
Nope.
A box is a box.
Ubuntu standalone is a very powerfull machine.
Just install 64bit and my advice to you: avoid Ubuntu. Try another version, which is compatible with this guide. I suggest Kubuntu or Xubuntu (64).
 

blahbl4hblah

Inactive Recognized Developer
Oct 3, 2010
6,061
1,514
Los Angeles, CA
hi man thank you for this guide, i got a problem
when i try to install the first files for sistem 64 bit i get this error:

Package awk is a virtual package provided by:
original-awk 2011-05-06-1
mawk 1.3.3-15ubuntu2
gawk 1:3.1.8+dfsg-0.1build1
You should explicitly select one to install.

E: Package 'awk' has no installation candidate
E: Unable to locate package 7zip

It might not be 7zip but 7za
As for awk try to install original-awk I wasn't sure actually since I had my computer setup for a long time already with everything
 

iJohnny

Senior Member
Jul 27, 2011
597
184
Osijek
After this command:

Code:
repo init -u git://github.com/CyanogenMod/android.git -b ics

I get this output:

Code:
No command 'repo' found, did you mean:
 Command 'rep' from package 'rep' (universe)
 Command 'repl' from package 'nmh' (universe)
 Command 'repl' from package 'mailutils-mh' (universe)
repo: command not found

Any ideas?
 

webmasteryoda

Senior Member
Jun 29, 2011
80
18
Kula
mindstorming.ws
I like Linux Mint. They have done a great job with Gnome 3 in making a more usable interface.

Sent from my HTC Sensation Z710e using Tapatalk

I agree. Linux Mint has the best Gnome 3 experiance. But its still Gnome 3. Mutter is still having a major issues with Ati propriatory drivers, while the other intefaces work excellent.

I think that probably the best Ubuntu distro for cooking roms is Xubuntu. Its well optimised and free of all sorts of fancy staff.
 

mpmilestogo

Senior Member
Aug 9, 2009
348
66
Union City California
Thanks for the detailed HOWTO

[/COLOR]
After this command:

Code:
repo init -u git://github.com/CyanogenMod/android.git -b ics

I get this output:

Code:
No command 'repo' found, did you mean:
 Command 'rep' from package 'rep' (universe)
 Command 'repl' from package 'nmh' (universe)
 Command 'repl' from package 'mailutils-mh' (universe)
repo: command not found

Any ideas?

The repo script is not in your path yet. I created a directory like /home/mperry/b in first and then installed the repo script there. You can prepend the command repo with the place you put the repo script. I copied repo to /usr/bin since this is a personal system and I don't care what I violate. You could also add a path statement to your .bashrc for the user which includes the path to the bin directory you created.
 
  • Like
Reactions: sparksco

Top Liked Posts

  • There are no posts matching your filters.
  • 69
    First of all, BIG BIG thanks to SparksCo for his guide for compiling CM7, I used his guide as a base for this

    Credits:
    CyanogenMod for giving their source to everyone
    SparksCo for teaching me what I know
    Vorbeth for releasing the original source for Sensation
    Elelinux for his hardwork on adding things to the device tree

    I'm making this guide for those who don't want to wait for a new CyanogenMod or AOKP build and want to build it themselves.
    Working on both ubuntu 11.10 and 12.04

    NOTE: DEPENDING ON YOUR COMPUTER'S HARDWARE, COMPILING TIME WILL BE DIFFERENT
    If you have a MAC OSX, I do not have a guide for that as I don't have one.

    Be aware for which part is for AOKP and CyanogenMod
    I have put "AOKP" and "CyanogenMod" Labels to help


    EVERYTHING THAT IS IN A BOX, OPEN TERMINAL AND ENTER THE COMMAND IN THAT SECTION

    Guide Requirements:
    - Computer
    - Common Sense
    - Some Linux Experience
    - Ubuntu 64-bit Installed
    - At least 4GB of ram with a dual core processor.


    Required Software to Install:

    For 32-bit and 64-bit System
    Code:
    sudo apt-get install git-core gnupg flex bison python rar original-awk gawk p7zip-full gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool xsltproc

    For 64-bit System
    Code:
    sudo apt-get install g++-multilib lib32z1-dev ia32-libs lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib

    Other Required Software:
    Code:
    sudo apt-get install libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils

    Link libx11
    Code:
    sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so

    You must have a 1.6.x to compile on the ics branch of cyanogenmod.

    MUST Install Java 1.6 (NOT Java 1.7):

    1a. Download Java JDK for Linux 64-bit from Java site
    Code:
    http://www.oracle.com/technetwork/java/javase/downloads/index.html

    Be sure to download (## will change if there's an update):
    Code:
    jdk-6u##-linux-x64.bin

    1b. Move the downloaded Java JDK into your home directory

    1c. Be sure to completely remove ALL OTHER JAVA

    Don't worry if some things are asked to be installed just accept!

    Code:
    sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*

    1d. Copy Java JDK into /opt/java/64
    Code:
    sudo mkdir -p /opt/java/64/
    sudo cp jdk-6u##-linux-x64.bin /opt/java/64
    sudo su -
    cd /opt/java/64
    chmod +x jdk-6u##-linux-x64.bin
    ./jdk-6u##-linux-x64.bin
    exit

    1e. Add the needed PATH to .bashrc
    Code:
    gedit ~/.bashrc

    Add these lines to .bashrc (Better to be near the top):
    Code:
    # Java PATHs
    export JAVA_HOME=/opt/java/64/jdk1.6.0_##
    export PATH=$PATH:$JAVA_HOME/bin

    Setting Up Android SDK

    2a. Download Android SDK at http://developer.android.com/sdk/index.html

    2b. Extract it to your home folder [Ex. ~/android/sdk]

    2c. Add Android SDK Path

    gedit ~/.bashrc
    Enter the Following:
    Code:
    #Android PATH
    export PATH=$PATH:~/android/sdk
    export PATH=$PATH:~/android/sdk/platform-tools
    export PATH=$PATH:~/android/sdk/tools

    2d. Add Extra Path For Device:

    sudo gedit /etc/udev/rules.d/99-android.rules (Text Editor will open up)
    Enter this in it:
    Code:
    #Acer
    SUBSYSTEM==usb, SYSFS{idVendor}==0502, MODE=0666
    #ASUS
    SUBSYSTEM==usb, SYSFS{idVendor}==0b05, MODE=0666
    #Dell
    SUBSYSTEM==usb, SYSFS{idVendor}==413c, MODE=0666
    #Foxconn
    SUBSYSTEM==usb, SYSFS{idVendor}==0489, MODE=0666
    #Garmin-Asus
    SUBSYSTEM==usb, SYSFS{idVendor}==091E, MODE=0666
    #Google
    SUBSYSTEM==usb, SYSFS{idVendor}==18d1, MODE=0666
    #HTC
    SUBSYSTEM==usb, SYSFS{idVendor}==0bb4, MODE=0666
    #Huawei
    SUBSYSTEM==usb, SYSFS{idVendor}==12d1, MODE=0666
    #K-Touch
    SUBSYSTEM==usb, SYSFS{idVendor}==24e3, MODE=0666
    #KT Tech
    SUBSYSTEM==usb, SYSFS{idVendor}==2116, MODE=0666
    #Kyocera
    SUBSYSTEM==usb, SYSFS{idVendor}==0482, MODE=0666
    #Lenevo
    SUBSYSTEM==usb, SYSFS{idVendor}==17EF, MODE=0666
    #LG
    SUBSYSTEM==usb, SYSFS{idVendor}==1004, MODE=0666
    #Motorola
    SUBSYSTEM==usb, SYSFS{idVendor}==22b8, MODE=0666
    #NEC
    SUBSYSTEM==usb, SYSFS{idVendor}==0409, MODE=0666
    #Nook
    SUBSYSTEM==usb, SYSFS{idVendor}==2080, MODE=0666
    #Nvidia
    SUBSYSTEM==usb, SYSFS{idVendor}==0955, MODE=0666
    #OTGV
    SUBSYSTEM==usb, SYSFS{idVendor}==2257, MODE=0666
    #Pantech
    SUBSYSTEM==usb, SYSFS{idVendor}==10A9, MODE=0666
    #Philips
    SUBSYSTEM==usb, SYSFS{idVendor}==0471, MODE=0666
    #PMC-Sierra
    SUBSYSTEM==usb, SYSFS{idVendor}==04da, MODE=0666
    #Qualcomm
    SUBSYSTEM==usb, SYSFS{idVendor}==05c6, MODE=0666
    #SK Telesys
    SUBSYSTEM==usb, SYSFS{idVendor}==1f53, MODE=0666
    #Samsung
    SUBSYSTEM==usb, SYSFS{idVendor}==04e8, MODE=0666
    #Sharp
    SUBSYSTEM==usb, SYSFS{idVendor}==04dd, MODE=0666
    #Sony Ericsson
    SUBSYSTEM==usb, SYSFS{idVendor}==0fce, MODE=0666
    #Toshiba
    SUBSYSTEM==usb, SYSFS{idVendor}==0930, MODE=0666
    #ZTE
    SUBSYSTEM==usb, SYSFS{idVendor}==19D2, MODE=0666
    
    
    SUBSYSTEM=="usb", ATTRS{idVendor}=="####:####", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
    TEST=="/var/run/ConsoleKit/database", \
    RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}"

    After this, close it and then enter:
    Code:
    sudo chmod +x /etc/udev/rules.d/99-android.rules

    If your using ANY AOSP rom like AOKP or CM9 and CM10
    Go into developer options and go to root access and change it from "Apps only" to Apps and ADB"

    2e. Install Certain Android SDK Tools

    Type:
    Code:
    android
    Check Android SDK Tools and Android SDK platform-tools and Install them

    Setting Up the .bashrc file

    gedit ~/.bashrc
    Enter the Following:
    Code:
    #Android PATH
    export PATH=$PATH:~/android/sdk
    export PATH=$PATH:~/android/sdk/platform-tools
    export PATH=$PATH:~/android/sdk/tools
    
    #Java PATH
    export JAVA_HOME=/opt/java/64/jdk1.6.0_32
    export PATH=$PATH:$JAVA_HOME/bin

    3b. After your done setting this up, close .bashrc file.

    Setup Workplace

    4a. Download CyanogenMod 9 Source
    Code:
    mkdir -p ~/bin
    mkdir -p ~/android/system
    curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
    chmod a+x ~/bin/repo (Reboot your computer after this)

    4b. Add Repo Path

    gedit ~/.bashrc

    Enter the following:
    Code:
    export PATH=$PATH:~/bin

    4c. Setup Necessary Source

    For CyanogenMod 9
    Code:
    cd ~/android/system
    repo init -u git://github.com/CyanogenMod/android.git -b ics

    For CyanogenMod 10
    Code:
    cd ~/android/system
    repo init -u git://github.com/CyanogenMod/android.git -b jellybean

    4d. Download Necessary Source
    Code:
    repo sync

    4e. Download Extra Needed Files
    Code:
    ~/android/system/vendor/cm/get-prebuilts

    Your Final .bashrc

    It SHOULD Look Something Like This:
    Code:
    #Android PATH
    export PATH=$PATH:~/android/sdk
    export PATH=$PATH:~/android/sdk/platform-tools
    export PATH=$PATH:~/android/sdk/tools
    export PATH=$PATH:~/bin
    
    #Java PATH
    export JAVA_HOME=/opt/java/64/jdk1.6.0_##
    export PATH=$PATH:$JAVA_HOME/bin

    Building CyanogenMod
    Code:
    . build/envsetup.sh; lunch cm_pyramid-userdebug; mka bacon

    Making a New Build

    Go inside to your source folder and delete the 'out' folder

    THEN Do This:
    Code:
    repo sync

    Code:
    . build/envsetup.sh; lunch cm_pyramid-userdebug; mka bacon
    16
    Compile AOKP Section

    Be sure to follow the steps from the above post and ONLY use this instead of the part called 4c. Setup Necessary Source

    FOR AOKP (ICS Version)
    Code:
    cd ~/android/system
    repo init -u https://github.com/AOKP/platform_manifest.git -b ics

    Temporary fix to build:
    Code:
    install -d prebuilt/android-arm/kernel

    Then do:
    Code:
    curl -o prebuilt/android-arm/kernel/LINUX_KERNEL_COPYING -O https://raw.github.com/ezterry/kernel-biff-testing/ezgb-2636/COPYING

    FOR AOKP (JELLYBEAN Version)
    Code:
    cd ~/android/system
    repo init -u https://github.com/AOKP/platform_manifest.git -b jb

    5b. Building AOKP
    Code:
    . build/envsetup.sh; lunch aokp_pyramid-userdebug; mka bacon
    11
    Reference

    This section is to help those who may look for answers

    Basic Linux Commands
    http://ss64.com/bash/

    CyanogenMod Wiki
    http://wiki.cyanogenmod.com/wiki/Main_Page

    Difference between breakfast, brunch and lunch
    http://synrgi.wordpress.com/2011/09/16/breakfast-brunch-and-lunch/

    Installing Android SDK
    http://developer.android.com/sdk/installing.html
    4
    Added it to the OP, sorry it took forever
    Can you also add my page with nightlies to the OP?