[Atrix 4G Q&A, Help & Troubleshooting] Arioch5:
I'm trying to better understand how the devs around here do what they do. I'm an Electrical Engineer and I make no claims to be a proper software developer. I know my way around C, Python, and Bash. I know my way around git and have worked with various build/release processes before so I can stumble through some CMAKE and MAKE build processes. Currently I have installed the the android SDK, compiled AOSP master branch and run it in an emulator. I've also compiled Cyanogen mod repos for generic-eng though I haven't gotten that to properly boot on an emulator yet.

So that's an idea of who I am and where I'm starting from. Now for the questions. I figure if I can understand the build environment and process I can learn quite a bit from the large history of available changes, especially since there is an Atrix Dev Team for Cyanogen.

Cyanogen Mod

I can't tell which repo's here are pure AOSP, modified AOSP, or from scratch pure Cyanogenmod.

Do the CM repo's track AOSP as a remote branch?

If yes, does that mean I can build pure AOSP from CM repo's via repo?

If no, how can you tell where in the AOSP development cycle the CM repo's fork from?

Are 'nightly' builds by definition a repo sync of the non-release base simply built as is? AKA for an Atrix nightly, you would checkout the gingerbread, sync, and build (assuming you're setup for building in the first place)

Are Official release only tracked via git tags? IE for CM 7.1 it's not really tracked on the manifest so would you need to find the proper tag and do a repo forall git checkout -b cm-7.1 or similar? I'm asking how you could build a previous release which should match the official release.

Atrix Dev Team

Similar to the CM Question, do these repo's track CM as their base repo's?

Could someone describe the typical development cycle of how the Atrix port is handled on top of a moving CM development? I'm a little lost as to how AOSP -> CM -> Atrix dev works out. If I checkout the Atrix manifest to gingerbread and perform git diff with the /m/gingerbread (I beleive the CM tracking branch) I see no differences. Are Atrix-Dev-Team and Official CM repo's simply fully in sync at this point?

How would I setup my repo to match a given Release (as in what tag or manifest I understand git)?

How would I setup my repo to match a given Nightly (as in what tag or manifest I understand git)?

As above, could you build pure CM from the Atrix repo's? This very well could be answered with the above questions.

Generic Info

What's a 'kang'?

My guess would be it's a build produced from the source repositories and not an official release by the developers.

Exploring the AOSP I noticed a separate kernel download link. I know CM uses a custom kernel but is that included in the default builds or is that typically flashed and managed separately?

After I'm familial with the whole process, and knowing what I've stated above what's the best step form there to be able to help contribute? Right now I've picked up a book on programming Apps on Android so I can learn the tools and some Java and I've had c++ on my radar for some time.

Thanks for your time. I've tried to get relatively well informed before I post questions.