[Galaxy S I9000 Android Development] pawitp:
CyanogenMod is a free, community built, aftermarket firmware distribution of Android 4.4 (KitKat), which is designed to increase performance and reliability over stock Android for your device.

#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/

CyanogenMod is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. Linked below is a package that has come from another Android project that restore the Google parts. CyanogenMod does still include various hardware-specific code, which is also slowly being open-sourced anyway.

All the source code for CyanogenMod is available in the CyanogenMod Github repo. And if you would like to contribute to CyanogenMod, please visit out Gerrit Code Review. You can also view the Changelog for a full list of changes & features.

What are Nightly builds? Auto compiled builds of the latest CyanogenMod source from github. This version change each night and aren't officialy supported. If you find bugs/issues you can/must discuss here (do not submit nightlies bug on CyanogenMod issue tracker).

Downloads

Latest build: http://download.cyanogenmod.org/?device=galaxysmtd

Google Apps: http://wiki.cyanogenmod.org/w/Gapps

Installation

- First time flashing CM11 to your Galaxy S (or coming from another ROM)?

(Note: a more detailed instruction for first-time install is available on CM Wiki: http://wiki.cyanogenmod.org/w/Install_CM_for_galaxysmtd)

If you're on a ROM prior to 2.3, upgrade to 2.3 is recommended.

Root your device and install ClockworkMod Recovery (e.g. Semaphore_2.7.4.tar from http://www.semaphore.gr/downloads).

Reboot into Recovery using 3-button-combo

Do a Nandroid backup!

WIPE (wipe data/factory reset + wipe cache partition)

Install the ROM from internal sdcard using ClockworkMod Recovery

Optionally install the Google Addon

- Upgrading from CM7/CM9?

Do a Nandroid Backup!

WIPE (wipe data/factory reset + wipe cache partition)

Install the ROM from internal sdcard using ClockworkMod Recovery

Optionally install the Google Addon

- Upgrading from CM10/10.1?

Do a Nandroid Backup!

Install the ROM from internal sdcard using ClockworkMod Recovery

You will finally see a "set_metadata_recursive" status 7 error. That is normal.

Reboot back into recovery (the reboot is required)

Install the ROM again from internal sdcard using ClockworkMod Recovery

Optionally restore /data from Nandroid Backup (the update will wipe your /data)

Optionally install the Google Addon

- Upgrading from CM10.2?

Do a Nandroid Backup!

Install the ROM from internal sdcard using ClockworkMod Recovery

Optionally install the Google Addon

- Upgrading from another build of CM11?

Do a Nandroid Backup!

Install the ROM from internal sdcard using ClockworkMod Recovery

Warning: You may get set_metadata_recursive related-errors during install if you're using a custom kernel without SELinux support. In that case, revert to the stock kernel before continuing or follow the instruction for upgrading from CM10.1.

Note: The partition layout of CM11 is the same as CM10.2.

Known Issues

Please do not report bugs if it is already listen in the list of known issues

Some CyanogenMod features a missing - please do not file bug reports for those.

Cannot set value via custom brightness "Edit" menu

No account selected for Backup (gapps problem?)

Reporting Bugs

You are allowed to report bugs only in this thread. Before reporting a bug, please make sure you are running as stock as possible. This means no custom kernel, no custom framework modification, etc. If you are using any of the above modifications, please flash the rom again to get rid of the modifications before reporting.

REPORT BUGS IN THIS THREAD ONLY

Grab a logcat right after the problem has occurred. (Please include at least a few pages of the log, not just the last few lines, unless you know what you're doing.)

If it is a random reboot, grab /proc/last_kmsg. (Do not bother getting a logcat unless you can get it just before the reboot. A logcat after a reboot is useless)

If the problem disappears after running "setenforce 0" from a root shell, grab /data/misc/audit/audit.log

Remember to provide as much info as possible. The more info you provide, the more likely that the bug will be solved. The following is a useful format to follow. Note: If you can provide the latest night/build that the bug didn't exist, it would greatly help in tracking down what caused it.

What is your--
Phone model:
Radio (baseband):
CM version:
CM Download url:
Gapps version:

Did you--
wipe:
restore with titanium backup:
reboot after having the issue:

Are you using--
a task killer:
a non-stock kernel:
CMSettings/Performance settings (other than stock):
ART Runtime:
other modifications:

Provide any additional information (observations/frequency of problem/last version it worked on/etc) as needed:

FAQ

Why is there no transparent status bar/lockscreen widget/"OK Google"?

Those features have been disabled by Google for low RAM device in order to save RAM. You can try enabling it by removing "ro.config.low_ram=true" from /system/build.prop, however, it is not an officially supported setup.

Does this ROM support FM radio?

I've checked and the new FM API in CM is not really compatible with our device without heavy modification. Applications using the new API expect to be able to read the FM input as it if were another stream, but FM on our device only does pass-through from FM receiver to speaker/headset, which causes certain functionalities to not work such as volume control. Maybe one can modify the audio routing table in the kernel to have it behave like the API expected, but I'm not really interested in investing time to do that.

TL;DR: No built-in FM radio except if someone else does it and submits a patch.

Why aren't configurations with more than 368 MB used?

Kernels with more than 368 MB have to sacrifice high-bitrate HD playback ability. The current memory configuration has been designed for maximum compatibility.

Wi-Fi AP does not work after restoring /data with CWM

CWM does not handle SELinux very well yet. Run this in a root shell to clear all wifi data and reboot.

rm -rf /data/misc/wifi

Changelog

A rough changelog is available here:

http://changelog.bbqdroid.org/#/galaxysmtd/next or http://www.cmxlog.com/11/galaxysmtd/

For previous unofficial releases, see here

The CyanogenMod team would like to thank everyone involved in helping with testing, coding, debugging & documenting! Enjoy!