[Samsung Galaxy 5 I5500] psyke83:
CyanogenMod 7.2.0-RC2+ Galaxy 5 Port

Latest release: v2.4 [20120518]

Latest Google Apps package: 20110828

Hey folks,

This is a port of CyanogenMod 7.2.0-RC2+, a community-developed Android ROM based on Gingerbread 2.3.7, for the Samsung Galaxy 5 I5500 (Europa) phone. The current port status is stable - most hardware is working correctly, but see post #2 for known issues.

Special thanks to Motafoca for starting CyanogenMod development, DrMacinyasha for the hosting, OuNao for the fake dual-touch module, sensor work and general assistance, mikereidis (author of Spirit FM Radio app) for helping with FM audio issues, and of course, thanks to all of you for testing!

Pre-requisites:

Visit the Basebands thread and make sure that you are using a baseband that is recommended for CyanogenMod. If you are still using an Eclair ROM, you must update your baseband or you will experience boot loops.

Visit the ClockworkMod thread and install the latest ClockworkMod build via Odin.

Install the GooManager application from the Google Play store.

Installation (updating from older CM7 build):

Open the GooManager application.

Select the Check for rom updates option.

Click on the notification for the available update and then click the Download button.

When the download finishes, enter recovery and install the update package followed by the Google Apps package.

Installation (first time/new users):

Open the GooManager application.

Navigate to psyke83 -> roms -> galaxy5.

Click on the build you wish to install from the list.

If needed, click the Download Gapps button to download the Google Apps package. The most recent (and most suitable) version will always be selected for you automatically.

Click on the Download button to download the rom.

Once the download(s) are complete, reboot into recovery and install the update package, followed by the Google Apps package.

Important: if you are updating from a stock or custom ROM, choose the data wipe option before rebooting.

Latest Changelog:

20120518 [v2.4]

Updated CyanogenMod source - version 7.2.0 RC2+ (pre-release).

Various improvements to libaudio: updated to Adriano Carrata's rewritten libaudio code (with my Samsung customizations re-added), added user-adjustable audio attenuation (disabled by default - see post #2), implemented Samsung's proprietary snd_set_extamp ioctl to improve audio quality, reduce in-call volume on headsets & fix FM radio background hiss.

Updated kernel with KSM (Kernel Samepage Merging) support - disabled by default, see madconfig documentation in post #2 for details.

Switched to wpa_supplicant v5 & awext driver. This fixes the issue in which wifi didn't connect properly either on first boot, or when activated via the notification bar/widgets.

Switched to libjpeg-turbo for better performance in Gallery & other apps making intensive use of jpeg images.

Switched to CM7 version of libgralloc & libcopybit, updated libcamera source.

Added support for automatic ROM re-odexing to madconfig (recommended only for people not using an app2sd method).

Small change to fake dual-touch driver to slightly improve touchscreen edge sensitivity.

Added support for ROM downloads/OTA updates via MAD Manager. Note: GooManager is still supported - it's your choice which application to use.

20120401 [v2.3]

Hotfix 3 [18th April]: kernel: fix shutdown issue.

Hotfix 2 [16th April]: kernel: enabled CGROUPS + CFQ IO scheduler (seems to reduce lag), various patches to improve performance/stability; g5sensord updated to v3.4 (low pass filter to reduce compass needle dancing).

Hotfix 1 [10th April]: kernel: fix headset detection problems, experimental change to improve stability when rebooting to recovery; g5sensord updated to version 3.3 (corrected bug in calibration file, hack to stabilize compass on high pitch)

Updated CyanogenMod source - version 7.2.0 RC1.

New kernel (label: gio2europa). Based on Samsung Gio Froyo source, updated to latest Code Aurora froyo_almond revision. This kernel has a more accurate battery driver, more efficient power saving for the mmc (wifi/sd) interface, and includes many fixes from Samsung and Code Aurora Forum in contrast our original kernel source.

New wifi driver + firmware (3.0.70.23, from Samsung Gio Froyo system image). This wifi driver is more recent than our official source, has better mmc power management code, and appears to be more stable. The minimum CPU frequency also set to 122Mhz (really). This frequency usually caused sleep of death issues, but this new driver may be immune.

Various patches for memory leaks and minor bugs from gerrit.

Updated sensor daemon (g5sensord) to latest revision (v3.1) - adds calibration data persistence, calibrated data and magnetic z-axis, saving of hard and soft iron calibration data. Should fix the Google Sky sensor issue. Thanks OuNao!

Enable setup_fs tool by default. This tool will check /data and /cache on each boot, ensuring that they are formatted properly as ext4 filesystems. If not, the partitions will be formatted automatically. This should make upgrading from Froyo more painless, and also fixes a common issue in which /cache corrupts randomly (perhaps due to unclean dismounts when the phone is not rebooted properly).

GooManager support now working correctly, which allows for future OTA updates.

20120317 [v2.2]

Hotfix 1: changed kernel config (to test for battery improvements), re-enabled WOW suspend in wifi driver

Updated CyanogenMod source - version 7.2.0 RC1.

Cherry-picked various patches from gerrit to fix issues with core binaries/libraries (dalvik, bionic, zlib, etc.).

Kernel: updated europa-battery, pmem, fsa9280, android staging drivers.

Kernel: reduce minimum CPU scaling frequency to 122Mhz (to see if sleep of death occurs with the new wireless driver).

Wifi: using AR6kSDK.3.0_RC.298 source with patches to allow usage of Samsung's firmware blobs, disable WoW (Wake on Wlan), and fix a certain case in which the driver blocks suspend. Note: the newest driver from freescale (AR6kSDK.3.1_RC.563) is not stable with our phone. This can't be fixed easily, as the problem appears to be within the new proprietary firmware blobs, which is something I can't fix. In the meantime, this driver should work well (and hopefully without any sleep of death issue).

dhcpcd: patches to optimize dhcp requests for Atheros AR6003. This improves connection/reconnection speed and reliability.

libhardware_legacy: increase wifi loader timeout from 1 second to 5 seconds. This ensures that the wireless driver is given time to settle before the first scan occurs.

wpa_supplicant_6: wait for control interface monitor to be brought up before starting. Improves reliability of wireless when reconnecting from idle.

libaudio: fix for minimum in-call volume being incorrectly muted in certain cases (including on speakerphone); fix FM audio when using no-microphone headphones.

Switched to OuNao's open libsensors - completely fixes accelerometer lag.

Switched to "g5sensord", Ounao's open memsicd replacement based on freescale's eCompass code - more battery efficient than proprietary memsicd daemon.

GPS: use worldwide SUPL server by default. Initial reports indicate that people are having better connectivity with this setup overall.

Compcache: back to 18%.

ADWLauncher: lock action buttons by default (helps avoid cases in which users accidentally detach the icons for these buttons).

Change scrolling cache setting to further improve scrolling speed.

Disable automatic brightness setting by default. Our phone has no light sensor, and I suspect that the software implementation may be causing battery drain.

20120305 [v2.1]

Hotfix 2test3 [10th March]: Kernel: reverted all changes since v2.0 release (to hopefully prevent battery drain); ar6000: avoid setting refClock rate (may improve wireless stability); reverted to CyanogenMod wpa_supplicant v6.

Hotfix 2test2 [8th March]: Same as hotfix2test1, but using stable kernel instead. Please compare against hotfix2test1.

Hotfix 2test1 [7th March]: Reintroduce CodeAurora kernel with fixes for battery usage (but further testing is needed by the community); updated new ar6000 driver to match suspend/resume/bluetooth coexistence behaviour of stock driver; switched to wpa_supplicant & hostapd 0.8.x from Atheros SDK to improve wireless behaviour; fix FM audio when using no-microphone headphones.

Hotfix 1 [6th March]: New wireless driver (AR6kSDK.build_3.1_RC.563) from Freescale i.MX53 source release - wireless is now stable. Modified source is available on github (freescale branch).

Updated CyanogenMod source

New ar6000 driver (adapted from AR6kSDK3.1 source package used by the Sony PRS-T1/JP e-book reader); enabled combo scanning in wpa_supplicant_6.

libaudio: fixed combo device issue (ringtone in speaker + headset/headphone)

libsensors: using OuNao's libsensors with change to further reduce battery consumption during idle. This completely fixes sensor lag. Thanks to OuNao.

Adjusted smartassV2 CPU scheduler to idle at lower frequencies

Enabled CGROUPS in kernel to minimize data starvation issues.

Updated fake-dualtouch module to v9.1 (fixed).

Enabled Goo-inside.me OTA update support (requires Goo-inside.me app)

20120206 [v2.0]

hotfix 2 (6th February): more fixes for microphone and headset routing. I can't reproduce call echo, so it may or may not be fixed.

hotfix 1 (6th February): due to popular demand, the microphone has been enabled to allow voice calls. [sarcasm]In future releases this will be a paid feature.[/sarcasm]

Updated CyanogenMod source (almost 7.2.0-RC1).

Kernel: updated OuNao's dualtouch module to the latest version (v9.1, which also has edge sensitivity fix).

Kernel: updated android staging kernel drivers from 2.6.35 kernel (notably bringing improvements to the lowmemorykiller driver).

Kernel: audio driver patches to prevent rare blackscreen during incoming calls from idle/low memory conditions.

Framework: disable scrolling cache (prevents lag in certain apps).

Framework: switched to stable copybit version with blending bug fix.

Audio: further updates to latest CAF libaudio version with FM support added. Bluetooth calling needs testing (I don't have a peripheral to test).

Camera: fixed force close error during zoom.

Mobiledata: added 2g/3g mobiledata switch option (you can set the mobiledata button to switch between 2g/3g mode instead of simply turning on/off data)

FM: Fix audio routing (where headphones sometimes stopped working after closing the radio app); respect upper and lower frequency limits; looping between low/high frequency limit during manual seek is now possible.

Network: SIM lock messages will no longer be ignored. This may help people who have problems using SIM cards that require a PIN unlock (note: this is not related to the reboot problems with certain SIM cards).

Updated USBController.cpp (tethering) code to possibly prevent reboots after extended use.

Refreshed ClockworkMod Recovery official build to 5.0.2.8 (thanks to koush)

Moved to new hosting on goo-inside.me (thanks to DrMacinyasha), which allows for better ROM Manager integration. This also means no more weekend download restrictions!

Improved LatinIME key sensitivity (key presses are recognised with better precision than before).

Settings -> About phone -> Mod version will now show the exact build date, which helps you to know exactly what version you're running.

Update notifications & automatic ROM updating now available (ROM Manager Premium users only).

Increased compcache to 26% (may be useful for those who have no swap).

Decreased wifi scan interval to 45 seconds to help with reconnection problems if you use hidden SSIDs.

Switched to US GPS servers by default.

???

v1.9 - DepositFiles, Mediafire, HotFile - 25 January 2012:

Hotfix 3 - DepositFiles, Mediafire, HotFile [26 January]: libaudio: updated code based on rmcc's geeksphone zero version, fixed no mic headsets (including FM routing).

Hotfix 2 [bad, please wait for newer hotfix] [26 January]: libaudio: updated code based on rmcc's geeksphone zero version. May help with some routing problems.

Hotfix 1 - DepositFiles, Mediafire, HotFile [26 January]: Kernel: disable samsung's drop_caches hack (may help reduce lag related to paging of swap). libaudio: fix for headphones issue (thanks to kingmaya & OuNao for troubleshooting).

Data wipe?: only if you have problems.

Updated CyanogenMod source (7.2-RC0)

Now using ICS transition and rotation animations

Fix for "stuck" notification items

Kernel: remove SCHED_HRTICK patches due to instability

Kernel: tweak smartassV2 scheduler to use more appropriate CPU frequencies for idle and awake states

Use safer mount options to reduce chances of data corruption

Reduce default compcache usage to 10% of memory

Tweaked TCP buffer for wifi device to improve performance

Improved Bluetooth reliability (enable HFP, increase max connections 1 -> 3).

v1.8 - DepositFiles, Mediafire, HotFile - 6 January 2012:

Hotfix 1 - DepositFiles, Mediafire, HotFile [7 January]: Kernel: back to original europa_battery.c driver from 2.6.32 kernel, with fix for 99% charge issue (should now stably charge to 100% and discharge without any erratic jumps); fixed video encoders and decoders (more efficient decoding of Youtube, etc., and now video recording is as fast as the stock ROM); libcamera: tweaked default exposure settings to slightly darken video recording; Boot: disabled setup_fs service (just in case it's causing a random /cache corruption issue).

Data wipe?: only if you have problems.

Updated CyanogenMod source (Android version 7.2-RC0)

Kernel: rebased on updated Samsung source.

Kernel: rebuilt using latest stable linaro gcc release: 4.5-2011.11

Kernel: removed mmc31xx axis orientation hack

Kernel: added new interactiveX CPU governor

Kernel: stability/performance patches added

Using new memsicd daemon which doesn't require mmc31xx kernel driver hack

Renamed usb tethering device from usb -> rndis (cosmetic)

New wifi module built from updated Samsung source; the only change is that Wireless-N mode is enabled.

Using wpa_supplicant_6 with ar6000 supplicant driver.

Updated adreno200 libraries (from latest Callisto Gingerbread ROM).

Tweak LatinIME keyboard (more compact)

Enable surface dithering by default (it improves font rendering quality without much performance drop)

v1.7.2 - DepositFiles, Mediafire, HotFile - 7 November 2011:

Data wipe?: only if you have problems.

Hotfix 1 [7 November 2011] Fixes wireless hotspot mode. Note that the hotfix is on ROM Manager (but I don't want to be releasing hotfixes any further).

Updated CyanogenMod source.

Removed optimization from framework that causes split video issues on our phone.

Added brightness and vibration presets - should fix notification icon issues.

v1.7.1 - DepositFiles, Mediafire, HotFile - 1 November 2011:

Data wipe?: only if you have problems.

Now distributed via ROM Manager.

Updated CyanogenMod source.

Using stock ar6000 driver & new wpa_supplicant_6 with awext emulation (patch thanks to Nicu Pavel) and fix for wifi hotspot mode.

Swapped volume controls when phone is at 90 degree anti-clockwise orientation.

v1.6 - DepositFiles, Mediafire, HotFile - 7 October 2011:

Data wipe?: only if you have problems.

Hotfix 4 [fixed2] - DepositFiles, Mediafire, HotFile [16 October 2011]: Fixed random disconnect issue with wifi driver; updated wpa_supplicant_6. Note: please report if you can't scan for access points correctly (should only happen if you do a data-wipe/fresh install). If this happens to you, be patient and wait 1-2 minutes for the list to appear properly.

Hotfix 3 [fixed] - DepositFiles, Mediafire, HotFile [15 October 2011]: [Fixed: MAC address problem with Google Sync] Using CM7 wpa_supplicant v6 with patch to fix wifi-hotspot activation; downgraded to slightly older wifi driver based on 2.6.35 kernel source (should be more stable, prevent sleep of deaths, and has working ad-hoc networking); fixed lense lockscreen text position; fixed problem with "split" video; fixed rendering effects. Note: You should wipe your dalvik-cache to avoid any problems.

Hotfix 2 - DepositFiles, Mediafire, HotFile [13 October 2011]: Reverted to v5 CyanogenMod wpa_supplicant driver (to fix ad-hoc networking); updated wifi driver; new kernel battery driver; decreased lockscreen bottom dip; some optimizations to framework code for increased performance. Note: your dalvik cache will be regenerated (i.e. first boot will be slower), and you may want to clear your battery stats due to the new battery driver. If you have problems, manually clear the dalvik cache.

Hotfix 1 - DepositFiles, Mediafire, HotFile [12 October 2011]: New hotfix to celebrate 800,000 CyanogenMod downloads & 1 million total MADTeam downloads! Fixed compass orientation, changed to newer wifi driver due to sleep of death issues with stock version.

Updated Gingerbread 2.3.7 / CyanogenMod source - no longer marked as Release Candidate code.

Due to reported problems, reverted to stock wifi driver - the only change is that wireless-N mode is activated.

Replaced CyanogenMod's v5 wpa_supplicant with Samsung's v6 version. This should improve wireless signal with the stock driver.

Fixed light toggle button in notification menu.

Optimizations: reduced VM heap size to 24m, disabled surface dithering.

Small tweaks & fixes.

v1.5 - 1 October 2011:

Battery stats wipe?: You must wipe your battery stats in ClockworkMod for this release, since we are using a modified kernel battery driver (and your existing stats file may be invalid).

Data wipe?: A regular data-wipe is only necessary if you have problems (as usual).

Hotfix 2 [5 October 2011]: Kernel: Bluetooth initialization fix; enabled compatibility with new basebands - you are now free to use any Froyo-based baseband with CyanogenMod. Framework: enhanced dual-touch compatibility (enabling/disabling dual-touch will now change the touchscreen permissions to the proper type). If you're using dual-touch, please re-enable via madconfig after installing this update.

Hotfix 1 [5 October 2011]: Kernel: kernel source re-patched from vanilla to avoid unnecessary/unstable patches; fixed reboot/reboot to recovery hangs; optimized size of kernel modules to free extra RAM; upgraded to newer FSR drivers from I5500XWJQ3 ROM; reverted to stable version of compcache (ramzswap) driver; removed OuNao's dualtouch driver from kernel, but re-added as an optional kernel module. Framework: added new "madconfig" script to configure swap and dualtouch activation; various small fixes and hacks removed.

35% extra trololo.

Updated CyanogenMod source - Gingerbread version 2.3.7.

Fixed audio routing when headphone/headset is connected. You can now force ringtones to speaker - just remember that you need to change this in Settings -> CyanogenMod Settings -> Sound -> Always play on speaker.

Fixed FM Radio seek (left/right arrows) - thanks to OuNao.

Now includes fake dualtouch driver by default - see OuNao's Fake DualTouch thread for more details.

Now using improved ar6000 wireless-N wifi driver (based on Linux compat-wireless-20110329 ath6kl driver, with Samsung's patches for the G5).

Small tweaks to the new battery driver's voltages.

S2E corruption issues should now be completely solved. If your existing /sd-ext partition is corrupt from previous usage in older ROMs, see post #2 for instructions on how to manually format your partition (this is the only way to clear the bug).

[I5508] Touchscreen driver for I5508 now partially working. The x/y axis orientation is correct, but the accuracy is not good. I will try to fix this in future releases/hotfixes.

v1.4 - 23 September 2011:

Battery stats wipe?: You must wipe your battery stats in ClockworkMod for this release, since we are using a new kernel battery driver.

Data wipe?: A regular data-wipe is only necessary if you have problems (as usual).

Hotfix 1 [24 September 2011]: Fixed wifi tethering (reverted to v5 supplicant - should not reduce wireless quality as we are still using the newer WEXT driver); fixed stock FM radio; improved FM radio volume code (thanks to OuNao); improved FM audio quality (reduced hiss sound).

Updated CyanogenMod source.

Deodexed ROM: you can now install the full Google Apps package if you desire. Keep in mind that your first boot after upgrade/fresh install will be slower compared to previous versions, but regular boots will continue to be fast.

Patch to prevent S2E from applying bad filesystem tweaks (won't interfere if you don't use S2E).

Linked /cache/download -> /data/download by default (so all users can download large apps from Market, even if not using an app2sd method).

Kernel: Updated battery driver (based on tass_battery.c 2.6.35 kernel driver) - this should reduce battery drain and prevent the phone from staying stuck on 99% battery for extended periods. Note: your battery stats will be erratic for one or two charging cycles - make sure to wipe your battery stats to help this process.

Wireless: new driver with Wireless-N capability & better signal (based on Atheros source from Samsung I5508, with patches from 2.6.35 kernel).

Updated to wpa_supplicant v6 (awext -> wext driver) & reverted to CM7 dhcpcd. This restores wireless signals to Froyo levels.

Kernel: Updated fsa9280 USB switch driver (from 2.6.35 source).

Kernel: change default TCP congestion control method to "veno" - should improve wireless reliability, especially if there is wireless congestion in your area. It can also improve wireless throughput under normal wireless conditions.

Enabled hardware-accelerated 2D rendering (note: this feature wasn't working properly in the previous test hotfixes - it's working now, and there is no graphical corruption).

Various small bugfixes.

v1.3 - 10 September 2011:

Data wipe?: only if you have problems.

Updated CyanogenMod source.

Hotfix 2 [18 September 2011]: Boot: removed custom lowmemorykiller tweaks; kernel: various updates (smartassV2, TinyRCU, Simple and V(R) IO schedulers), bugfixes and optimizations, changed default scheduler to Simple IO; libaudio: code cleanup and reduced overall FM volume; Framework: enabled hardware-accelerated 2D rendering.

Hotfix 1 [10 September 2011]: Fixed volume controls on stock FM app (thanks again to OuNao and Mike).

Stock FM Radio app now working! Huge thanks to mikereidis and OuNao for the assistance. Note: the volume will be stuck at 100% in the stock app, so take care not to blow out your speakers (will be addressed in a later hotfix). Alternatively, you can use Mike's excellent Spirit FM application which has working volume controls (as well as many other features not present in CyanogenMod's stock FM app). See this thread and Mike's thread on XDA. Be sure to show your appreciation for Mike's work by purchasing the unlock key for his app.

Boot: small fix to /dev/log/* permissions (was causing log errors).

Graphical tweak to improve GUI performance.

Source Code:

Kernel: https://github.com/psyke83/kernel_samsung_europa

Device: https://github.com/psyke83/android_device_samsung_galaxy5