Upon positive feedback to my initial post and several requests in the modded-cm7-thread, here's the thread for the development section.
This thread is about providing everyone with my CyanogenMod 7 Kang and the modifications I added to it. Both ROM and Kernel are compiled from source in a Linux environment. Note: This is by no means my ROM. My work is based on the awesome efforts by everyone who contributed to CM7. While initially I built the ROM only for myself in order to adjust a few things to my liking, after some development I thought "It's so good, I might as well share it".
Highlights of my CM7 Kang:
- All CM7 commits up to September 25, 2012
- Very smooth and snappy overall experience (smooth spinners, smooth indeterminate progress bar, different screen transition animations, some other things)
- Enhanced audio experience (digital audio mixer, increased headphone volume, Beats Audio, more volume increments)
- Increased battery life through kernel tweaks like writeback variables, underclocking, WLAN undervolting, and LED-button light dimming
- Custom CM7 Kernel with battery-optimized smartass2 governor, additional interactivex and ondemandx governors, default SIO i/o scheduler (2012 version), battery optimized sysctl variables and many more improvements
- G-key usable as a launch button for the camera app, as shutter key inside the camera app, and also as music play/pause key when the screen is locked
- increased camera jpeg quality (pictures are ~ 1.3 - 1.7 MB)
- Option to center the statusbar clock (not enabled by default) and change the clock's color (white by default)
- Option to set the statusbar color (not enabled by default). You can choose between fully transparent, semi-transparent, and any custom color.
- Optional 1.2 GHz overclocking via menu
- Fixed GPS performance, largely fixed audio routing and fixed call quality
- VPN support
- Customizable installation with Aroma installer
Download links for 'all-in-one' package:
- Download mirror 1: Mediafire
- Download mirror 2: Rapidshare
- md5sum: 3c220de332afbeea07e04ad4ff047a7a
- Installation: to install, go into CWM and select the package via 'Install zip from sdcard'. Upon this, a graphical user interface will guide you through the setup process.
- This package contains everything that was previously listed under 'download links': ROM, Kernel, Google apps, Beats Audio remover, localized GPS fixes, WLAN failsafe Kernel, the format script, additional applications, and the option to remove some stock applications.
- The Aroma installer gives you the possibility to customize your installation: you can freely choose any component you want to install without the need to install anything else. For example, you could only install the ROM, only the Kernel, only a GPS fix, etc.
- There is no need to do any wipes in CWM - the installer will take care of this.
- Besides the fully customized installation, there are two quick install options available in the installer: 'Install CM7' and 'Update CM7'. Those will perform the necessary wipes and install the bare CM7 ROM (including Google apps) for you. No other additional apps will be installed or removed.
- When installing the CM7 ROM, the European GPS fix and Beats Audio are already included by default.
Download links for Kernel-only flashable:
- Download mirror 1: Mediafire
- Download mirror 2: Rapidshare
- md5sum: f2b8d85b65e231c5705b5e3cf9779b81
Download links for Baseband changer package:
- Download mirror 1: Mediafire
- Download mirror 2: Rapidshare
- Only change your baseband if you know what you are doing. The procedure is really simple and instructions are included in the zip file. Changing baseband will only affect baseband, your ROM / settings / apps will be unaffected.
Full Changelog and source references:
cm-7-package-20120925-p970-boype - Kernel: Tweaked voltages for better stability (this time for real) - All CM7 commits up to September 25, 2012 (incl. some memory leak fixes and other things) - Final release! cm-7-package-20120916-p970-boype - Kernel: Completely removed DVFS touch ramping - Kernel: Tweaked voltages for better stability - Kernel: DVFS CPU ramping: Make more use of the lowest frequency (200 MHz) - All CM7 commits up to September 16, 2012 cm-7-package-20120909-p970-boype - Removed OMAP4 GPS driver from ROM, since it should not be there in the first place (P970 is based on OMAP3) - Changed low-memory-killer values to 2048,3072,4096,6144,7168,8192 - Kernel: set ondemandx as default as it appears to be the most battery friendly governor - Kernel: DVFS: relaxed ramping behavior. Lower OPPs (= less MHz) are used for the same tasks to save battery; also enhanced a little piece of code - All CM7 commits up to September 9, 2012 - Replaced (the optionally installable) Root Browser with ES File Explorer since it has better functionality - Updated (the optionally installable) AlarmDroid app to the latest version cm-7-package-20120905-p970-boype - Reverted RIL to v11b due to occasional loss of signal problems - Reverted camera libs to v11b due to the first two seconds of video recording being black - Set touchscreen refresh rate slightly above the display refresh rate for smoother scrolling (71 Hz) - Reverted Wifi scan interval to 20 seconds (CM7 default) to counter some Wifi (re-)connect issues - Updated Play Store and ROM Manager to latest version - All CM7 commits up to September 5, 2012 - Kernel: Reverted CPU transition latency to 15ms (LG default) - Compiled Kernel and ROM with default CM7 toolchain (GCC 4.4.3) for maximum compatibility and as few bugs as possible. Linaro caused strange behavior sometimes!? cm-7-package-20120826-p970-boype - Updated all LG proprietary files to V20N (GPS, graphics, RIL, sensors, video codecs, ...). The files prior were still from V11B (Froyo). - Re-compiled package with Linaro toolchain, since random errors were reported cm-7-package-20120824-p970-boype - Set audio capture mixer to 'Digital' (was 'Analog' before) - Increased microphone sampling rate for voice calls to 16 KHz (was 8 KHz before) - Activated multi-mic in handset calls: multi-mic makes use of the second microphone located near the headphone port to record ambient noise. The noise is compared to the sound captured by the primary microphone and then filtered out. - Boosted speaker volume a little - Added option to choose transition effects from within aroma installer: the current LG Froyo effects are set as default, but the CM7 default ICS-effects can be installed as well. - Fixed bug in aroma installer where Europe GPS fix could not be (re-)installed - Fixed bug in aroma installer where Play Store disappeared and could not be recovered after updating the ROM / re-installing Google apps - Pre-zipaligned apks of optionally-installable applications - Updated ROM manager to latest version - All CM7 commits up to August 24, 2012 cm-7-package-20120817-boype - Fixed GPS not working when screen is off - All CM7 commits up to August 17, 2012 - Added AROMA installer for an "all in one" package (thanks to tantrums for the help). All previously available flash files (ROM, Kernel, GPS fixes, apps, ...) can be installed from AROMA. You don't even need to do wipes in CWM anymore, as a formating script is included. - Updated some outdated applications (Google Search, Play Store, Superuser) - Kernel: added USB battery drain fix cm-7-20120809-p970-boype - Another attempt to fix the 'overamped' microphone during handset calls (I'm not talking about the background noise issue here) - Fixed front camera not working in high quality video mode - Fixed GPS fix not setting permissions properly on first boot - All CM7 commits up to August 9, 2012 - Kernel: Fixed the issue where the CPU ramped down (or only appeared to ramp down!?) way below 200 MHz cm-7-20120805-p970-boype - Reverted microphone gain on handset calls back to standard values, while maintainig the increased gain for everything else. (Some users reported distorted sound due to high gain. Actually, I assumed that calls were excluded from the gain.) - Went back to standard app package - no apps removed, no apps added (not even google apps). Can't argue with personal taste... - Pre-set GPS fix is set to European NTP server (so no need to flash the EU GPS fix) cm-7-20120803-p970-boype - All CM7 commits up to August 3, 2012 - Fixed GPS permission issue being repsonsible for bad GPS fix performance - Fixed large parts of the (very messed up) audio routing: - In a call, when enabling handfree (speaker) mode, the interlocutor could not hear anything - In a call with headphones attached, the interlocutor could not hear anything - In a call via headset, the interlocutor experienced very low volume - Increased overall mic recording volume by 66% (Regular calls are excluded from that. However, e.g. Skype calls and voice recording are boosted.) - Added option to set the statusbar color (not enabled by default). You can choose between fully transparent, semi-transparent, and any custom color. (By JerryScript. source 1 + source 2) - Fixed a small bug with the center clock, which wasn't correctly "rolled in" after events in the status bar ticker. - Changed Launcher to the official Play Store version of ADW Launcher (gives a little better performance and smoothness) - Integrated Google apps (gapps) into ROM package and updated most of them to the latest version - Integrated the LG Memo app and widget (pulled them from a stock GB ROM) - Integrated Root Browser, Fancywidgets (great weather widgets), HTC IME mod (superb keyboard) and some other useful apps - Deleted useless apps from ROM: DeskClock, FileManager, LatimIME, LiveWallpapers, LiveWallpapersPicker, MagicSmokeWallpapers, Protips, RomManager. I have added a zip package with the deleted apps to the OP, in case you want any of those apps back. - Integrated a couple of notification/ringtone sounds: 'Guitar 2' and 'Major' from HTC, 'Wake up' from Sony Ericsson, and two retro Super Mario sounds :) - Kernel: Set CPU OPs to 200-400-600-800-1000-(1200) MHz - Kernel: Re-integrated almost all parts of LG DVFS and rewrote them to work with the new frequencies. This largely stabilizes the kernel! - Kernel: Tweaked voltages, GPU frequencies and screen-off ramping behavior to optimize battery life - Kernel: Fixed WiFi hang on re-enable. Connecting WiFi is really fast now :) (Thanks to Conn O'Griofa). (source) - Kernel: Undervolted WLAN some more - Kernel: Added ondemandx governor and changed to regular smartass2 / interactivex governors (non-DoomLord versions) - Kernel: Updated SIO to 2012 version and tweaked it slightly - Kernel: ...more changes under the hood. Check the sources if you're interested. - Updated building environment: Kernel and ROM are compiled with Linaro toolchain 11.10 / Java JDK 6u33 cm-7.2.0-p970-20120715-boype - All commits up to July 15, 2012 - Implemented Beats Audio into the ROM for an enhanced music experience. If you don't like it for some reason, just use the Beats Audio remover listed under the download links. Huge thanks to RockoDev. (source) - Kernel: fixed the SOD / freeze issues. Thanks again to kdo_vi and Siguiriya for beta testing. - Kernel: fixed the issue where the phone was laggy for a minute or so after changing the frequency. This means, that you can now also set your desired frequency and governor on boot without any initial lag or other downsides. - Kernel: removed a lot of LG DVFS stuff from the code. Only the very necessary lines for a smooth operation remain. - Kernel: lowered LED-button energy input by ~40%. Battery savings 'hello' ;) - Kernel: tweaked SIO a bit for better I/O performance - Kernel: some more changes under the hood. Check the Kernel source if you're interested. - A sidenote for the benchmark kids: Change your governor to ondemand or interactiveX when you want to get the best possible synthetic benchmark scores. cm-7.2.0-p970-20120711-boype - Kernel: Fixed bug where CPU frequencies and governor could not be set properly in CM Settings -> Performance -> CPU Settings (I removed parts of LG DVFS for that) - Kernel: increased voltage for 200 MHz CPU frequency to get rid of reported SODs - Kernel: added optional 1.2 GHz overclocking support, selectable from the CM Settings -> Performance -> CPU Settings menu - Kernel: added SIO i/o scheduler and set default - Kernel: smartassV2 is default governor again cm-7.2.0-p970-20120710-boype - All CM7 commits up to build date - Kernel: Underclocked the lowest CPU operating point (OPP) to 200 MHz (was 300 MHz before) and applied lower voltage for that OPP. Also adjusted GPU frequencies in a linear way for all OPPs (each 100 MHz increase adds 80 MHz more GPU clock, so in the end the default GPU maximum of 800 MHz is reached at a CPU speed of 1000 MHz). Huge thanks to Huexxx and his released Kernel sources! - Kernel: lowered WLAN voltage to save battery. Operating voltage is now between 1.7 Volt and 2.7 Volt (was 1.8 - 3.0 Volt before). - Kernel: Set tickrate to 72 Hz. I expect this to be a battery saver when screen is on. - Kernel: Back to deadline i/o scheduler - Kernel: More kernel stuff under the hood, see the Kernel source if you're interested cm-7.2.0-p970-20120704-KANG - All CM7 commits up to build date - G-key is no longer a "dead" key: - when screen is on, long press will open the camera app - inside the camera/camcorder app, g-key will serve as camera shutter key (Enable it in camera app -> advanced settings; I implemented this function) - When the screen is off, long press can be set to toggle music play/pause (Enable it in Settings -> CM settings -> Input; I unlocked this function) - Increasing ringtone option (cherry-pick, authored by Danny Baumann; source 1 + source 2 + source 3) - Disabled trackball options from Settings -> CM settings -> Input (since the optimus black has no trackball) - Added 40mb heapsize to Settings -> CM settings -> Performance settings and set as default (was 32mb before) - Kernel: added interactivex and set as default governor - Kernel: set noop as default i/o scheduler - Kernel: added support for VPN (compiled and integrated tun.ko module for that) - Kernel: added g-recovery by sergey1369. When you have a bootloop, you can still access CWM by repeatedly pressing the G-key while booting. Also thanks to Huexxx for answering a question ;) (source) cm-7.2.0-p970-20120625-KANG - All CM7 commits up to build date - Added "center clock" and "clock color" feature by jerryscript (source 1 + source 2) - Kernel: Updated SmartassV2 with DooMLoRD's optimized version of the governor (I hope to achieve even better battery life) (source) - Kernel: changed taskkiller values to 6mb 8mb 26mb 28mb 30mb 32mb (1536 2048 6656 7168 7680 8192) -> values taken from the "balanced 3" setting from zeppelinrox's supercharger v6 (I encountered some slight issues with the previous values at multitasking) (source) cm-7.2.0-p970-20120620-KANG - All CM7 commits up to build date - Removed blur effect from popup menus (like the power-off menu) since it was causing slowness and lag - Changed wifi default timeout to 5 minutes after screen goes off. cm7 default hardcoded value was 15 minutes - Changed analog audio mixer to digital audio mixer. subjective listening result: less distortion and hissing via headphones - Changed volumes for louder headphones and maximum speaker volume without distortion - Added build.prop tweak for better battery life: pm.sleep_mode=1 - set wifi scan interval to 150 seconds to save battery (was 20 or 30 before) - Raised jpeg encoding quality to 97 for better image quality of photos (was 90 before). note: this is not a build.prop tweak, since that method won't work on CM7 - Added "smooth spinners" (the "please wait"-circle-animation) - Created smooth indeterminate progress bar (the "infinite" progress bar). just applied some very basic photoshop skills for that - A-GPS: added european NTP server (was north american before) - Added more increments to volume bars for everything (music, ringtone, notification, alarm, calls, .....) - Changed transition effects to lge-p970-froyo-stock because they look nicer and smoother - Removed the android legacy libGLES driver, since it prevented the SGX530's graphics driver to do its job properly (should give a smoother overall experience + is proven to give an improved gaming experience) - Kernel: added smartass2 governor and set default with battery-optimized values: DEFAULT_AWAKE_IDEAL_FREQ 800000; DEFAULT_SLEEP_IDEAL_FREQ 300000; DEFAULT_RAMP_UP_STEP 100000; DEFAULT_RAMP_DOWN_STEP 100000; DEFAULT_MAX_CPU_LOAD 66; DEFAULT_MIN_CPU_LOAD 33; DEFAULT_UP_RATE_US 48000; DEFAULT_DOWN_RATE_US 99000; DEFAULT_SLEEP_WAKEUP_FREQ 99999999; DEFAULT_SAMPLE_RATE_JIFFIES 2 - Kernel: set deadline i/o scheduler default - Kernel: set battery driver to output current voltage in mV (so it is displayed correctly e.g. in spareparts' battery info) - Kernel: set swappiness to 0 - Kernel: tweaked writeback and cache variables for extended battery life dirty_ratio 90 dirty_background_ratio 80 dirty_expire_centisecs 1000 dirty_writeback_centisecs 2000 min_free_kbytes 4096 vfs_cache_pressure 10 - Kernel: tweaked /system, /data and /cache mountings (from Huexxx kernel) (source) - Kernel: changed taskkiller values to 6mb 8mb 24mb 26mb 28mb 30mb (1536 2048 6144 6656 7168 7680) -> values taken from the "balanced 1" setting from zeppelinrox's supercharger v6 (source) - Kernel: tweaked tcp buffersizes to 4096,87380,256960,4096,16384,256960 - Kernel: tweaked SD-card readahead to 2048kb
Installation, notes and bugs:
- Known bugs:
- Video recording:
- Low frame rates in general (around 13 FPS)
- Recording occasionally just stops after some time
- Video playback: Hardware decoding is laggy (You can still use software decoding, which works fine, but consumes more battery)
- FM radio:
- FM radio puts the volume to the maximum at start-up and every time a sound notification occurs
- After an incoming call the radio won't continue playing
- Channel renaming does not work
- SIP calling: The headset button won't work (can't mute or hang up calls with it)
- Skype calling: Handsfree (loudspeaker) mode causes extremely low microphone volume
- Bluetooth: there have been reports about random Bluetooth re-pairings, resulting in calls not working properly
- Video recording:
- Installation procedure and various problems:
- It is perfectly possible to flash the kang over any other CM7 version (nightlies, kangs). Also, you can flash any other CM7 over my kang.
- When you're switching to CM7 from a stock-based ROM: Few users reported problems of various sorts. If you experience any problems, re-install CM7 with a 'full format'. This should solve your problems in most cases.
- The transparent / colored status bar feature does not work with all launchers or types of wallpapers. In ADW Launcher, the 'wallpaper hack' option must be disabled for the feature to work! Note that there is no solution out there for making it work with any launcher and wallpaper.
- Few users have reported problems with getting a GPS lock. I have built a fix for that, which is already integrated into the ROM from version 2012-08-03 on. If you still experience problems: some xda users report that the following simple steps fixed their GPS issues completely: disable both 'Use wireless networks' and 'Use GPS satellites' in the menu 'Settings > Location & Security', exit the menu, and afterwards re-enable both options.
- The FM radio turning on Bluetooth is NOT a bug, since the FM radio is integrated into the Bluetooth chip. It only appears that this is a bug, as the LG stock FM radio app hides that Bluetooth is activated. In reality, the stock FM radio app turns on bluetooth as much as the CM7 FM radio app does.
- To those who are new to CM7:
- CM7 is a powerful ROM that adds a lot of features compared to stock ROMs. Things which are noteworthy are a customizable power-widget, vibrate-notifications on established/disconnected calls, LED notifications, different lockscreen styles, volume keys to choose next/previous audio track, an ICS-like screen rotation animation, ascending ringtones, and much more. Many people may still think CM7 is buggy and unstable, but it is not anymore, since great progress has been made over the last months.
- Miscellaneous tips:
- Many apps that come pre-installed with CM7 can be removed if you don't like them. Check out this list of items to make sure it is safe to remove a specific app.
- If you want to install other themes, search for CM7 themes on Google's Play Store or the xda forums.
Other users' verdicts:
Special thanks go out to Huexxx for his hard and amazing work!