[CM7]KANG discussion

Search This thread

Zatta

Inactive Recognized Developer / Contributor
Dec 22, 2010
2,177
1,222
Sneek
Subscribed although I can't build myself. This matter is too interesting not to follow. I think bk201 his posts are the ones that I pay most attention to and I hope he will not be discouraged by this 'ban' but will keep us informed here.

Taptalked u see

Taptalked u see
 

siky_dude

Senior Member
Nov 21, 2010
3,217
1,529
Constanta
Subscribed although I can't build myself. This matter is too interesting not to follow. I think bk201 his posts are the ones that I pay most attention to and I hope he will not be discouraged by this 'ban' but will keep us informed here.

Taptalked u see

Taptalked u see

yep, love those posts too :D
 

Jens1969

Senior Member
Subscribed although I can't build myself. This matter is too interesting not to follow. I think bk201 his posts are the ones that I pay most attention to and I hope he will not be discouraged by this 'ban' but will keep us informed here.

Taptalked u see

Taptalked u see

Setting up a build environment isn't that hard. If you need help, please let me know.
 
  • Like
Reactions: GJSmith3rd

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
This is the place where to talk about your own personal cm7 builds, aka KANGS.

PURPOSE: keeping the main CM7 thread clean.

THIS

sorry for all the trouble.

currently testing:

I426982b3, I16a40854, Idb544452
feedback: have to test this some more, but didn't work when i tried the first time. there could be a popup informing user that bootanim was imported sucessfully or not, also fps rate dropped quite a bit after 1 or 2 seconds previewing chosen bootanim. that worked, but when i rebooted bootanim was still the default. don't know if i did something wrong though.

If0476af0, If5485caf
feedback: no errors on output, but icon on statusbar doesn't show. profiles feature keeps working fine, with this on or off.

Idf1cb09f, I89bdbc11
feedback: working flawlessly. 3 or 4 seconds less on boot process.

I52fcd648
feedback: downloaded Third Blade from market (~49mb), no issues downloading or installing. internal/external sdcard unaffected. no more need for this maybe?

I4427e3f2
feedback: working without issues; from what i understand this a function that gets string lenght (for example from a user input, not so sure here); any way to get a more technical comparison? a math test to cpu perhaps?

I92569aa2
feedback: also working, and solved original issue.

Ic0b39c23
feedback: no compile errors, no issues until now, seamless.

Id3e68a75, I2e365a33
feedback: working; does what's described. will test further for conflict with HSPA setting introduced by pawitp.
UpINZl.png
bYTHCl.png


I461e90ac, I70d846ab, I76632c87
feedback: working; need more time to check for improvements on battery runtime.
UXf5Il.png
X4TSjl.png
 
Last edited:

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
Very good work. Have you been commenting on gerrit also? That would useful for the peer reviewers.

I haven't, the devs said i shouldn't if i didn't have anything to contribute.

more in testing

I5cb28b08
feedback: no issues to report, seamless

Ic395fae3
feedback: fixes skewed preview on camera when launching it from lockscreen custom app starter, with auto-rotation/90º active.

I985c4573
feedback: looks good, seamless on the end user i guess

I923fa5aa
feedback: still working fine, that nice terminal :D

just saw this, will test later:
I7ccd5e2c
 
Last edited:

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
Setting up a build environment isn't that hard. If you need help, please let me know.

Do you think we should get a little bit more constructive/extensive (based on the wiki, sure) on build tips? setting up the buildenv isn't hard at all (just bandwith/time consuming), but 'repo' cannot be trusted for anything else than 'repo sync', and git can be a bit overwhelming. I've been practicing, so i'm getting better at git, branching, merging and fixing conflicts when they occur.

and another one up for testing
I412f9bba - benchmark fans, let's go :D
 
Last edited:

Zatta

Inactive Recognized Developer / Contributor
Dec 22, 2010
2,177
1,222
Sneek
For me the limit is my hardware. A notebook /w ubuntu (yeah!), but also 2 years old, 512 mb ram, 160 gb hd. Don't think that will do.

Taptalked u see
 

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
For me the limit is my hardware. A notebook /w ubuntu (yeah!), but also 2 years old, 512 mb ram, 160 gb hd. Don't think that will do.

Taptalked u see

hmm, i used to build on a p4 with 2gb ram. linux holds its ground, it will not give up on you, even if you're browsing (don't watch flvs though ;)) or listen to music... i hope.
still, if you find something you want to see tested, write it down, someone will test it (if it doesn't get approved before that :D) and share feedback.

---------- Post added at 10:06 PM ---------- Previous post was at 09:13 PM ----------

Received call, screen didn't wake up. pressed home once, no reaction, pressed power button twice, screen woke up and i was able to awnser the call.

http://pastebin.com/4PuAd31R

I/power ( 208): *** set_screen_state 0
D/SurfaceFlinger( 208): About to give-up screen, flinger = 0xeb108
D/KeyguardViewMediator( 208): wakeWhenReadyLocked(26)
I/power ( 208): *** set_screen_state 1
I/power ( 208): *** set_screen_state 1

i'm curious, what's KeyguardViewMediator?

quote from cm forums, user danielck78
Try this. Press on the sensor or somewhere near it. Try to press harder for about 2 seconds. Try if the screen turn back on.

edit: i'm with ring lockscreen. never happened before, but i've merged a couple of commits which are related to lockscreen stuff, note that i'm not saying that they are the cause. i'll try with vanilla kernel too (merged a couple of commits from zach 2.6.35.x towards battery runtime, although i don't think they're to blame since i had them for like 3 builds, that makes at least a week and a half using it)
 
Last edited:

Jens1969

Senior Member
Do you think we should get a little bit more constructive/extensive (based on the wiki, sure) on build tips? setting up the buildenv isn't hard at all (just bandwith/time consuming), but 'repo' cannot be trusted for anything else than 'repo sync', and git can be a bit overwhelming.

Trying to get into CM7/SGS development, there seems no way around git. But git doesn't like me. :)
ATM I manage to 'sync repo' and cherry-pick commits. But get lost often. As you said: git is not easy.

So, I'd like this to be a place to talk about (maybe) upcoming changes and also to get some help with development related tasks.

On the long run, this could be a starting point to attract (or grow!) more SGS programmers.


I461e90ac: looks very promising. Switched to UMTS only and lost only 5% in two hour. Will see what I lose overnight.
 
Last edited:

jose.celestino

Senior Member
Aug 23, 2011
330
108
plus.google.com
i'm curious, what's KeyguardViewMediator?

* Mediates requests related to the keyguard. This includes queries about the
* state of the keyguard, power management events that effect whether the keyguard
* should be shown or reset, callbacks to the phone window manager to notify
* it of when the keyguard is showing, and events from the keyguard view itself
* stating that the keyguard was succesfully unlocked.

At wakeWhenReadyLocked(26), the keyguard was notified that it may need to do something about a keypress, 26 is the keycode of the pressed key, KEYCODE_POWER = Power Key (http://developer.android.com/reference/android/view/KeyEvent.html).
 

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
* Mediates requests related to the keyguard. This includes queries about the
* state of the keyguard, power management events that effect whether the keyguard
* should be shown or reset, callbacks to the phone window manager to notify
* it of when the keyguard is showing, and events from the keyguard view itself
* stating that the keyguard was succesfully unlocked.

At wakeWhenReadyLocked(26), the keyguard was notified that it may need to do something about a keypress, 26 is the keycode of the pressed key, KEYCODE_POWER = Power Key (http://developer.android.com/reference/android/view/KeyEvent.html).

thanks for the link :) (xda limit :mad:) this whole section of the website looks like a nice place to learn.

anyways, another question while we follow the trail: at line 27 of the pastebin, set_screen_state 1 comes in, and this should have waken the screen, right?
as it didn't, then i pressed HOME, and WindowManager says there's a ringing incoming call already (because call Notification already has a fullScreenIntent right, that's why we can't leave the incoming call screen), so it can't pass that button press request further. i still don't get why power
set_screen_state 0 at line 43, without me pressing it, that's the thing.

edit: just now, phone was sleeping, and screen came up fine for a phone call. no issue. :confused: lol :D
 
Last edited:

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
Trying to get into CM7/SGS development, there seems no way around git. But git doesn't like me. :)
ATM I manage to 'sync repo' and cherry-pick commits. But get lost often. As you said: git is not easy.

So, I'd like this to be a place to talk about (maybe) upcoming changes and also to get some help with development related tasks.

On the long run, this could be a starting point to attract (or grow!) more SGS programmers.


I461e90ac: looks very promising. Switched to UMTS only and lost only 5% in two hour. Will see what I lose overnight.

i'll try to get something going on the git side, although surely i need to improve as well. i now think cherry-picking/branches is easier than fixing conflicts. i'm managing myself through, you'll see, it's actually not that hard. it definately is easier for someone who knows how to code, but that's a given, i guess.
definately, i agree with you about the objective of this thread. i would add as well help improve users so that they can help themselves, maybe we'll turn into the devs of tomorrow (pretty utopic schedule that is, but still), maybe not, but we all learn something more out of it - knowledge has no place - while helping out the community, and making some more mistakes along the way.

I461e90ac looks promising indeed. :) i'll give one more cycle to it. :D

edit: i was bored so... in Ie259e6da, if we edit:

device/samsung/aries-common/AriesParts/res/values/arrays.xml to:

Code:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
	    <string-array name="backlight_timeout_entries">
                <item>Off</item>
	        <item>Default (1.6 seconds)</item>
	        <item>2 seconds</item>
	        <item>5 seconds</item>
	        <item>10 seconds</item>
	        <item>15 seconds</item>
	        <item>30 seconds</item>
	        <item>Never</item>
	    </string-array>
	
	    <string-array name="backlight_timeout_entries_values" translatable="false">
                <item>0</item>
	        <item>1600</item>
	        <item>2000</item>
	        <item>5000</item>
	        <item>10000</item>
	        <item>15000</item>
	        <item>30000</item>
	        <item>-1</item>
	    </string-array>
	</resources>

would it be enough to turn off the leds entirely from AriesParts, while still having led notif, of course? or do we need to go kernel level, (i noticed drivers/input/keyboard/cypress-touchkey.c, like pawitp did here)?
i think only editing the xml doesn't do the trick like it should, does it? maybe if we changed this:
Code:
static void bl_set_timeout() {
    if (bl_timeout > 0) {
      mod_timer(&bl_timer, jiffies + msecs_to_jiffies(bl_timeout));	
  }	
}
to
Code:
static void bl_set_timeout() {
    if (bl_timeout ≥ 0) {
      mod_timer(&bl_timer, jiffies + msecs_to_jiffies(bl_timeout));	
  }	
}
no good? or would it still need something else? or is it completely way off and would make my phone melt :D

this doesn't look promising.. Void, seems to me that's the same as 'we don't need this'?
Code:
static void bl_off(struct work_struct *bl_off_work);

i think i will start doing some serious e-learning on coding.. once i get more "comfortable" at work and can relax a bit.
 
Last edited:
  • Like
Reactions: Jens1969

leejack218

Senior Member
Nov 12, 2010
61
2
guys,i have been on cm7.1 from the day cm7.1 stable released and now Im on nightly 165,and i keep facing a problem (so do my 4friends)-the google framework service forcing problem
First i know a data wipe or wiping all the gapps and those apps that regard to account syncing ,but it sometimes work for a period(1day or less)and sometimes dun even works
can someone give me some helps ?

I'm on nightly 165 with stock kernel
Changed dpi with nitrality to 182dpi
 

Zatta

Inactive Recognized Developer / Contributor
Dec 22, 2010
2,177
1,222
Sneek
guys,i have been on cm7.1 from the day cm7.1 stable released and now Im on nightly 165,and i keep facing a problem (so do my 4friends)-the google framework service forcing problem
First i know a data wipe or wiping all the gapps and those apps that regard to account syncing ,but it sometimes work for a period(1day or less)and sometimes dun even works
can someone give me some helps ?

I'm on nightly 165 with stock kernel
Changed dpi with nitrality to 182dpi

this is definitely the wrong thread for this. Answer in the q&a thread.

Edit: link to that is in my sig.

Taptalked u see
 
Last edited:
  • Like
Reactions: beekay201

jose.celestino

Senior Member
Aug 23, 2011
330
108
plus.google.com
edit: i was bored so... in Ie259e6da, if we edit:

device/samsung/aries-common/AriesParts/res/values/arrays.xml to:

Code:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
	    <string-array name="backlight_timeout_entries">
                <item>Off</item>
	        <item>Default (1.6 seconds)</item>
	        <item>2 seconds</item>
	        <item>5 seconds</item>
	        <item>10 seconds</item>
	        <item>15 seconds</item>
	        <item>30 seconds</item>
	        <item>Never</item>
	    </string-array>
	
	    <string-array name="backlight_timeout_entries_values" translatable="false">
                <item>0</item>
	        <item>1600</item>
	        <item>2000</item>
	        <item>5000</item>
	        <item>10000</item>
	        <item>15000</item>
	        <item>30000</item>
	        <item>-1</item>
	    </string-array>
	</resources>

would it be enough to turn off the leds entirely from AriesParts, while still having led notif, of course?

No, that's the screen timeout.

or do we need to go kernel level, (i noticed drivers/input/keyboard/cypress-touchkey.c, like pawitp did here)?

You need this patch to get BACKLIGHT_TIMEOUT from userspace as it is hardcoded to 1600 (ms). Then you need another patch to set the value in CMParts or, in this case, AriesParts.

Don't know if 0 would turn it off though.

this doesn't look promising.. Void, seems to me that's the same as 'we don't need this'?
Code:
static void bl_off(struct work_struct *bl_off_work);

void means you don't care for the function return

EDIT: "Then you need another patch to set the value in CMParts", failed to see that that was the one you posted and included the arrays.xml. Disregard everything I said before that.
 
Last edited:

Daneshm90

Retired Recognized Developer
Jun 1, 2009
3,332
662
Yes if you edit that array, you will control the led backlight timer. Lowest you can go is 1. (0 is always on)

To test values do : echo 1 > /sys/class/misc/notification/bl_timeout

To turn it off however, some kernel "hacking" will be required :D
 
Last edited:
  • Like
Reactions: beekay201

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
Yes if you edit that array, you will control the led backlight timer. Lowest you can go is 1. (0 is always on)

To test values do : echo 1 > /sys/class/misc/notification/bl_timeout

To turn it off however, some kernel "hacking" will be required :D

I'm confused. If 0 is always on, what's -1?

edit: Or did you mean -1 is always on?
edit2: (follow up on the next page) actually anything below 1 (since bl_timeout needs to be greater but not equal to 0) will make touchkey bl stay on forever.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 6
    how to build Teamhacksung ICS rom

    More than a month after the last post here, are we going to allow the death of this thread?
    Hell no! Has someone here already figured out how to build cm9?

    Taptalked u see

    Is the CM9 source already available?

    afaik, nope..
    :) not yet


    But you can already build the teamhacksung builds;)
    I've successfully build the sources for the first time about 2 weeks ago.

    short steps to build the TH ics rom.

    a) repo init cyanogenmod branch ics
    b) add a local_manifest with the device_samsung_galaxysmtd and the device_samsung_aries_common from the teamhackung github
    c) repo sync
    d) clone the kernel source from teamhacksung
    e) clone the build script from teamhacksung
    f) run extract_files.sh from de device_samsung_galaxysmtd
    g) add TARGET_RECOVERY_PRE_COMMAND="echo 1 > /cache/.startrecovery; sync;" to the boardconfig.mk
    g) run the build script
    e) Enjoy

    All credits goes to pawitp for the great releases
    6
    This is the place where to talk about your own personal cm7 builds, aka KANGS.

    PURPOSE: keeping the main CM7 thread clean.

    THIS

    sorry for all the trouble.

    currently testing:

    I426982b3, I16a40854, Idb544452
    feedback: have to test this some more, but didn't work when i tried the first time. there could be a popup informing user that bootanim was imported sucessfully or not, also fps rate dropped quite a bit after 1 or 2 seconds previewing chosen bootanim. that worked, but when i rebooted bootanim was still the default. don't know if i did something wrong though.

    If0476af0, If5485caf
    feedback: no errors on output, but icon on statusbar doesn't show. profiles feature keeps working fine, with this on or off.

    Idf1cb09f, I89bdbc11
    feedback: working flawlessly. 3 or 4 seconds less on boot process.

    I52fcd648
    feedback: downloaded Third Blade from market (~49mb), no issues downloading or installing. internal/external sdcard unaffected. no more need for this maybe?

    I4427e3f2
    feedback: working without issues; from what i understand this a function that gets string lenght (for example from a user input, not so sure here); any way to get a more technical comparison? a math test to cpu perhaps?

    I92569aa2
    feedback: also working, and solved original issue.

    Ic0b39c23
    feedback: no compile errors, no issues until now, seamless.

    Id3e68a75, I2e365a33
    feedback: working; does what's described. will test further for conflict with HSPA setting introduced by pawitp.
    UpINZl.png
    bYTHCl.png


    I461e90ac, I70d846ab, I76632c87
    feedback: working; need more time to check for improvements on battery runtime.
    UXf5Il.png
    X4TSjl.png
    6
    Hey guys, so this is post #1 on the repo/git/gerrit building and most common (and a few advanced ones) tasks for cm, and basically anything that you want to build from git (and keep track of what is being done, rather easily, without the need for a web browser, for instance).

    I'll try to keep this as short and as straight forward as i can. Anything inside '' is to be interpreted as cli programs/scripts and correspondent options, and for more info, i always refer to 'man program_you_need_help_with', often it saves me a lot of time. If you're on windows, well... I'll leave that part for someone else, sorry.

    1- Setting up build environment/Repo Sync

    We all know this step, it's well described here, which we all have read, and although that's pretty much it if you want to just build with latest merges, but first I often find myself with the need to customize my paths (since I don't use Ubuntu) and check dependencies.
    Following the cm wiki folder structure, inside your cm root dir (/path/to/android/system), there's a few things that some might need to do.

    a) setting build/envsetup.sh environment variables.​
    For example, $ANDROID_BUILD_TOP, $ANDROID_TOOLCHAIN, $ANDROID_EABI_TOOLCHAIN - you can set these before hand, with 'echo $VARIABLE=/path/to/right/folder', or, even better, track these with git, by editing build/envsetup.sh on a different branch than (local) master.. more info on that part later.
    b) setting java (jdk) paths and installed version​
    $JAVA_HOME and $ANDROID_JAVA_TOOLCHAIN can sometimes also need some customizing, remember that you need openjdk6 v1.6.0.x at least with CM (i was using 1.6.0b22.24, if i'm not mistaken, i currently have 1.6.0 because of aosp building), not sure about 1.6.1.x, but definately not 1.7.x last time i checked.
    c) cleaning previous build environment​
    i usually call 'make clean' if i locally changed anything (testing commits in review) or remote pushed updates on script files, for example build/envsetup.sh, Makefiles, project $ANDROID_BUILD_TOP/frameworks/base, etc etc. 'make clobber' will make sure that any binary files that were updated are taken into account in the new build.
    If you don't clean your build env before building again, you'll be able to build faster, because some stuff, for example $ANDROID_BUILD_TOP/device/samsung/galaxysmtd/kernel and modules residing in the same dir are kept from build to build (you can also keep these files in a stash, by calling 'git stash' in a certain branch. Also, $ANDROID_BUILD_TOP/out/target/product/galaxysmtd/ has stuff from previous build, so when you 'brunch galaxysmtd', building process will check for those files and if they were not changed in some brutal way, just optimize and re-use them. Just remember that when you merge something and after building/testing it doesn't show up in the rom :) it happened to me once, with build.prop :D
    d) 'repo sync'​
    basically the same as 'git pull', it's great for re-syncing the work tree with master.
    it's the only thing it's good at, and sometimes, it even fails there, because it is not aware of any outside changes you do to it, as it is not capable of tracking them. that is where git enters.

    2- Enter git!
    git is a great tool. it has many many features, but we'll get better at it, since we won't use them all (for now, anyway :cool:)

    a) cloning​
    'git clone $remote_git_url $local_dir' will clone (or download, if you prefer) a remote git repo to a $local_dir of your choice.
    to make a small comparison, it's similar to repo sync, except repo sync only clones the first time your run it, after that it pulls (which in turn is similar to 'git pull $remote_git_repo_branch, that is a mix between two other git commands, 'git fetch' and 'git merge').
    back to 'git clone', not only it downloads the files, but also the current active branches of the remote repo, which allow you to see commit/merge history of a said branch with 'git log branch_name', for example.

    b) branching​
    imagine having one tree. it has one main branch (the master branch). Then it has lot's of ramifications, the other branches, that have small differences from the master branch, but are still made of the same thing.
    with branches, git allows for different changes (or commits, or merges, or inserted files, pictures, binaries, etc) to be kept seperately without interfering with your local master branch, thus tracking different goals in building, while always retaining a point in development to go back to, if your changes still don't satisfy or broke build, for example.
    let's say of you want to review (or test) I86acf878 in project frameworks/base, but want to keep it in a different branch, to have stuff organized and ready for later use, branch that tracks repo/branch github/gingerbread.
    for example.
    'git branch I86acf878-fingerprint_lockscreen github/gingerbread' would create a local branch that tracks github/gingerbread, named "I86acf878-fingerprint_lockscreen".
    we created the branch, but we need to switch to it, with 'git checkout I86acf878-fingerprint_lockscreen', before we actually save any work on it. or cherry picks.
    it's good policy just to 'git branch' after checkout so that you are 100% certain that you're on desired branch. it also prints a list of branches in certain project.
    let's suppose that you wanted to test another commit, I89bdbc11, which is in project frameworks/base as well.
    instead of keeping it on the same branch, you can create another one, same way as before and it's ready to checkout to, and to pull that different commit.
    another example:
    if you wanted to customize build/envsetup.sh, so that everytime you run '. build/envsetup.sh && brunch galaxysmtd', env variables get set right before building, you could also create a branch in build/, checkout to that branch, edit envsetup.sh according your local setup, tell git to keep your changes in mind with 'git add envsetup.sh', and finally commit that into your own "local-config" branch.

    and here's another thought: you can create as many branches as you need, merge your local branches, or better, you can merge your local branches inside one master-local-testing branch.
    this leaves the highway ready for cherry-pick and rebasing functions, while still being able to track the commits and merges that you did or pulled in the past, which branches were merged in, with the help of 'git log'.

    c) merging​
    'git merge' is used, quite bluntly, when you want to merge branches inside one project.
    You can only checkout one branch at a time. This way, merging several branches into another, allows for testing several commits in the same build.
    using the same example as before, change dir to frameworks/base. 'git branch' will tell what branches are there:
    I99830a55-MIUI-likeBatteryBar
    I89bdbc11-disablebootanim
    I6368d518-lockvolumekeys
    user-local-testing
    to merge all first three branches into "user-local-testing", first checkout to that branch.
    'git checkout user-local-testing'
    then, start merging the other branches into the current one. i'll merge the first one:
    'git merge I99830a55-MIUI-likeBatteryBar'

    when merging, you may or may not encounter conflicts. most of the times you don't, but when you do face it, either you try to solve it, find help, or just leave it.
    git tells you that you have conflicting files, which files are, and even marks the lines that are causing the merge conflicts, like this:
    <<<<<<< HEAD:file.txt
    Hello world
    =======
    Goodbye
    >>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
    'git diff' will help here. you can use gerrit to help out, choosing Side-by-side view (old version and version in review), like this.
    after resolving the conflicts, you need to tell git to start tracking the file(s) you edited. for example, if we had edited frameworks/base/packages/SystemUI/res/drawable/battery_bar.xml and
    frameworks/base/packages/SystemUI/res/layout/status_bar.xml, we would need to
    'git add packages/SystemUI/res/drawable/battery_bar.xml' and 'git add packages/SystemUI/res/layout/status_bar.xml'.
    after, we commit those changes with 'git commit -a' - you'll be put inside your $EDITOR (set your favourite through env variables), where you can put a small description of what files were edited for conflict resolving. save the file, and git will add the change to those specific files, specific folders, time, to 'git log' of the branch you're working on.
    Remember, solve the conflicts in the branch you are merging to, not in the branch you're merging with.

    sorry guys, but i'll finish the rest on branches later
    still to do:
    d) cherrypicking
    e) rebasing
    3- Speeding up build times
    4- ...
    5- glossary
    5
    This is the place where you can post and talk about your own personal cm7 builds, aka KANGS, experimental ideas and such.

    PURPOSE: keeping the main CM7 thread clean.

    THIS
    5
    YEEY, I build my first KANG today :):)

    How I did it:
    -I installed VMware Player on my Windows 7 64bit laptop (i3 350 - 3GB)
    -I made a Ubuntu 11.04 32bit machine (1GB, 1 core, bridged network (not NAT), 30GB HD)
    -I added "deb http://archive.canonical.com/ maverick partner" to the synaptic package manager (settings>repositories), and then installed sun-java6-jdk (For me, it didn't work with apt-get).
    -I then opened a terminal and typed "apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool"
    -I then downloaded SDK and extracted it to /home/kasper (personal folder). I then ran ./android from the tools directory and downloaded the SDK components
    -I then added the /platform-tools directory to $PATH (to be able to run adb)
    -I did not do anything to the udev parameters, default was fine.
    -I then followed Compile Wiki from the "Create the Directories" part down
    -Building took around 2 hours

    So, now I have some questions:
    -Is there a howto or any useful info to start adding non-merged commits?
    -The /out/target/product/galaxysmtd folder contains all the files from which the flashable zip is compiled. Do these files get overwritten automatically when rebuilding, or do I need to clean/empty this folder?
    -Do I need to completely build/compile CM7 after every small change, or is there a shortcut to only apply the changes without rebuilding the remaining stuff?