[Nexus One Android Development] mordokak:
Android Open Source Project Gingerbread Development Central

​

Introduction:

Many of you know me for my PhoenRom nexus rom but today I want to start a thread that hopefully will become a clear place HEAVILY ORIENTED TO AOSP DEVELOPERS where they can gather the latest fixes, kernels and mods so that they can easily be merged to the latest Gingerbread AOSP branch. This post will also provide guidance for setting up a AOSP developer machine, and all possible needed how to's that are related to the subject.

Also with time I realized that users demand always the same mods over and over between versions. So if we post the source of those modifications here it will allow them to be easily ported between versions.

This will also benefit the mods qualities itself since a community work might enhance them, amplifying their features or simply making them more stable.

What exactly WILL this post cover:

AOSP Development tools

Guidance to modifying, merging and compiling AOSP

AOSP Fixes and patches

AOSP Mods

Kernels

Useful collection of how to's links

What exactly WILL NOT cover:

Roms

Apps

Themes

About the thread:

Ill personally will update this thread the best I can and test as many mods posted as possible. If anyone want to post their mods or feel that something should be posted here and its missing, feel free to do it, or private message me so I can post it. If something posted here is of special relevance and falls directly into the "WILL CONTAIN" I would post it in the opening post and hopefully will end up with a nice source library. I will also try to upload this sources to github so they are friendly mergeable.

Setting up AOSP development environment

Minimum Requirements to build Android form Source:

2GB of RAM

20GB of hard drive free space

Linux:

You can use any distribution but I highly recommend Ubuntu for AOSP development.

Currently you can build AOSP in both 32bit and 64bit Ubuntu versions as long as you have the right repositories installed. Working through virtual machines its perfectly compatible, and for this purposes I personally recommend VirtualBox.

Deploying the environment, android source and compile it the easy way (default is set to CyanogenMod gingerbread branch, edit the script if you want to build from Master instead):

FOR 32 BIT LINUX ONLY:

Download this script [URL="http://dl.dropbox.com/u/6751304/androidmake"]http://dl.dropbox.com/u/6751304/androidmake[/URL]
(Courtesy of nicandris)

FOR 64 BIT LINUX ONLY:

Run this command line in terminal

apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib

and then use the 32 bit script.
[URL="http://dl.dropbox.com/u/6751304/androidmake"]http://dl.dropbox.com/u/6751304/androidmake[/URL]
(Courtesy of nicandris)

Set the script permissions to executable and finally run the script.

NOTE: Downloading and compiling will take several hours.

Mac:

Visit this thread for guidance (Building CyanogenMod for Nexus One) http://xdaforums.com/showthread.php?t=775505

AOSP Branches

Gingerbread Branches:

Master

repo init -u git://android.git.kernel.org/platform/manifest.git -b master

CyanogenMod

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

AOSP Fixes and issues

Master

CyanogenMod

[URL="http://xdaforums.com/showpost.php?p=11161803&postcount=33"]CM7 make fails and complains about RomManager.apk[/URL]

AOSP mods

Rooting + Superuser.apk

(Courtesy of wdfowty & ChainsDD)
1) You need to clone ChainsDD's Superuser.apk into your source tree
[CODE]
cd ~/android/system/packages/apps
git clone -b gingerbread http://github.com/chainsdd/android_packages_apps_Superuser.git Superuser

2) Next, you need to disable the original su binary from being built. In a console/terminal, type

gedit ~/android/system/system/extras/su/Android.mk

Then replace all text in the file with this

ifeq ($(BUILD_ORIGINAL_SU),true)

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= su.c

LOCAL_MODULE:= su

LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_STATIC_LIBRARIES := libc

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := debug

include $(BUILD_EXECUTABLE)

endif

That's it. Superuser.apk and su binary are included in every build after.

More info can be found here: http://howto.ccroms.net/android_project/build/mod/root

[/CODE]

Trackball Alert

CM6 Code: [URL="https://github.com/lilHermit/ta-framework-os"]https://github.com/lilHermit/ta-framework-os[/URL]
CM7: all ready has this built in.
Gingerbread: framework can be patched with trackball alert via smali patch option.

Trackball Wake & Unlock

[URL="https://github.com/CyanogenMod/android_frameworks_base/commit/88c07d2fd8419a287d6ed56ad6b1aab583b63ed3"]https://github.com/CyanogenMod/android_frameworks_base/commit/88c07d2fd8419a287d6ed56ad6b1aab583b63ed3[/URL]
[URL="https://github.com/CyanogenMod/android_frameworks_base/commit/809be3bf813258434b98c0987e38d58b28edab6c"]https://github.com/CyanogenMod/android_frameworks_base/commit/809be3bf813258434b98c0987e38d58b28edab6c [/URL]
[URL="https://github.com/CyanogenMod/android_frameworks_base/commit/17a5669474c01b0e49b8e1dd65e92c9c0a68e2ca"]https://github.com/CyanogenMod/android_frameworks_base/commit/17a5669474c01b0e49b8e1dd65e92c9c0a68e2ca[/URL]

Battery %

1)To enable battery % we need to generate the 2 modified xml files, stat_sys_battery.xml and stat_sys_battery_charge.xml.
We can do this with this 2 bash scripts:

[B]generate-battery-xml.sh[/B]
[URL="http://android-leonextlevel.googlecode.com/hg/generate-battery-xml.sh?r=60a06f198e7e5262e0197cb645a66c507b63b5df"]http://android-leonextlevel.googlecode.com/hg/generate-battery-xml.sh?r=60a06f198e7e5262e0197cb645a66c507b63b5df[/URL]

[B]generate-battery_charge-xml.sh[/B]
[URL="http://android-leonextlevel.googlecode.com/hg/generate-battery_charge-xml.sh?r=60a06f198e7e5262e0197cb645a66c507b63b5df"]http://android-leonextlevel.googlecode.com/hg/generate-battery_charge-xml.sh?r=60a06f198e7e5262e0197cb645a66c507b63b5df[/URL]

to do so, just run in this two command lines where you created the script files and gave them executable permissions.

[B]./generate-battery-xml.sh > stat_sys_battery.xml[/B]

[B]./generate-battery_charge-xml.sh > stat_sys_battery_charge.xml[/B]

2)Now copy and replace this 2 xml to the source directory "android/system/frameworks/base/core/res/res/drawable" (you'll need root permissions")

3)Add your battery%(1-100) images to the source directory "android/system/frameworks/base/core/res/res/drawable-hdpi" (you'll need root permissions")

4)Finally compile the source

Tips: you can use UOT Kitechen to generate the battery images [URL="http://circle.glx.nl/"]http://circle.glx.nl/[/URL]

(Courtesy of leonnib4)
[URL="http://code.google.com/p/android-leonextlevel/source/detail?r=60a06f198e7e5262e0197cb645a66c507b63b5df"]http://code.google.com/p/android-leonextlevel/source/detail?r=60a06f198e7e5262e0197cb645a66c507b63b5df[/URL]

Enable transparency

[URL="http://review.cyanogenmod.com/#change,2189"]http://review.cyanogenmod.com/#change,2189[/URL]

Shut Down extra options (Recovery & Reboot)

[URL="https://github.com/CyanogenMod/android_packages_apps_CMParts/commit/e68ba6a7211c3c6a66b5e13930be7b9ce837edbd"]https://github.com/CyanogenMod/android_packages_apps_CMParts/commit/e68ba6a7211c3c6a66b5e13930be7b9ce837edbd[/URL]
[URL="https://github.com/CyanogenMod/android_frameworks_base/commit/06507942da1b847f60c162160ac1d46c78f93730"]https://github.com/CyanogenMod/android_frameworks_base/commit/06507942da1b847f60c162160ac1d46c78f93730[/URL]

Pull-down notification area power widget (Glaxsy S style power widget)

(Courtesy of Pedlar)
[URL="https://github.com/Pedlar/android_frameworks_base/commit/eb0e39732842151e947f27cf64a00480d75e5631"]https://github.com/Pedlar/android_frameworks_base/commit/eb0e39732842151e947f27cf64a00480d75e5631[/URL]

Sip Calling not only over wifi

(Courtesy of paul o'brien)
In the framework-res APK edit the following setting...

[COLOR="SeaGreen"]<bool name="config_sip_wifi_only">[COLOR="Red"]false[/COLOR]</bool>[/COLOR]

For more info visit [URL="http://android.modaco.com/content/google-nexus-s-nexuss-modaco-com/327770/using-gingerbread-internet-calling-sip-without-wifi/"]http://android.modaco.com/content/google-nexus-s-nexuss-modaco-com/327770/using-gingerbread-internet-calling-sip-without-wifi/[/URL]

BusyBox

Here you can find the latest ARM binaries:
[URL="http://busybox.net/downloads/binaries/"]http://busybox.net/downloads/binaries/[/URL]

App2SD

[URL="http://xdaforums.com/showthread.php?t=715940"]http://xdaforums.com/showthread.php?t=715940[/URL]

Incognito Browser

[URL="https://github.com/CyanogenMod/android_packages_apps_Browser/commit/3e82693651aa2b5a27f54ffd883177a624c09574"]https://github.com/CyanogenMod/android_packages_apps_Browser/commit/3e82693651aa2b5a27f54ffd883177a624c09574[/URL]

Proxy

Info:
(Coyrtesy of leonib4 & Ninpo)
[URL="https://github.com/leonnib4/packages_apps_Settings/commit/264954500ba24f7fe27837e731ebc4d7ae7b0d4c"]https://github.com/leonnib4/packages_apps_Settings/commit/264954500ba24f7fe27837e731ebc4d7ae7b0d4c[/URL]
[URL="https://github.com/CyanogenMod/android_frameworks_base/commit/ed99b80128f1aea8889a24f96ac33c5de0faef3a"]https://github.com/CyanogenMod/android_frameworks_base/commit/ed99b80128f1aea8889a24f96ac33c5de0faef3a[/URL]
[URL="https://github.com/CyanogenMod/android_frameworks_base/commit/c2e62d24d0f57c9315e40e9957e918e68b41bc4b"]https://github.com/CyanogenMod/android_frameworks_base/commit/c2e62d24d0f57c9315e40e9957e918e68b41bc4b[/URL]

Enable HSPA icon

(Courtesy of Rusty!)
change config_hspa_data_distinguishable to true in SytemUI.apk's /res/values/bools.xml

Add silence & vibration to volume keys

STATUS:Waiting for submit

OTHER VERY USEFULL MODS

(Courtesy of leonnib4)

http://code.google.com/p/android-leonextlevel/wiki/Progress

http://code.google.com/p/android-leonextlevel/source/list

(Courtesy of cyanogen)

http://review.cyanogenmod.com/

GingerBread Kernels

(Courtesy of redstar3894)

2.6.35.10_AVS-950mV_CFS-GB_20110110_0001 OC & UV to 950mV

2.6.35.10_AVS-925mV_CFS-GB_20110112_0025 UV to 925mV

Source Files can be found at github https://github.com/redstar3894

How to's collection

​

How to compile AOSP Gingerbread

Building CyanogenMod for Nexus One (Gingerbread)

How to fork in github

THIS THREAD IS UNDER CONSTRUCTION...FEEL FREE TO POST ANY MODS, IDEAS, FIXES OR WHAT EVER YOU WISH MEANWHILE. HELP IS APPRECIATED!