[ROM+Kernel] MiRaGe-CM7.2-IHO (07132013)

Search This thread

mrg666

Senior Member
Aug 4, 2011
1,966
4,784
I have been building LG Optimus V ROMs from the CM/IHO repo and sharing my builds with the community in the IHO thread since some time. Besides the geek satisfaction, I build for removing some extras and customize for performance. Following the original IHO thread has become too difficult due to its enormous size and simultaneous discussion of many other builds. This thread is for sharing what I build for myself with the community, a place for receiving feedback, posting changes for my builds, and returning at least some of what I received from this community.

Please thank/donate to CM project, and especially the IHO developers, Blarf, Bob, Jerry, LeslieAnn, tdm, thekraven, and many others.

I prefer MiRaGe to be a barebones/basic ROM closely following CyanogenMod. The changes below are only aimed at enhancing the performance, fixing bugs, and slight touches on the interface without diverging from the original.

The followings are added:
  • Custom MiRaGe kernel compiled with gcc-4.6 linaro toolchain using -O2 optimization
  • ICS fonts for system and lockscreen clock,
  • ICS style battery, signal, wifi, sdcard, data icons for statusbar,
  • ICS icons for the power widgets, menu, and settings,
  • transparent notification background,
  • Android boot logo
  • Cyanbread_light: a tiny theme to replace the orange highlights with cyan/blue that matches with the recent Google Play apps (included in the ROM) (source code is here )
  • Unique bluetooth MAC addresses. Source code here
  • Baseband version in About Phone screen. Source code here
  • Bluetooth volume settings are not limited by voice dialer. Source code here
  • AGPS patch for better accuracy. Available here
  • Optional stock Android 2.3.5 Launcher2 available here
  • Simple IO scheduler in the kernel which has less overhead for the system and more suitable for flash memory
  • BFS 4.04 CPU scheduler for quicker user interface and better efficiency
  • TinyRCU Read-copy update (RCU) synchronization mechanism which improves scalability by allowing readers to execute concurrently with writers and reduces the system overhead.
  • Many bug/security fixes for ext2, ext3, ext4, fat, mmc file systems, sound system, block layer, bluetooth, networking, and ARM architecture backported from 2.6.32.59 kernel.
  • Computing network protocol sequence numbers and fragment IDs using MD5 instead of inaccurate MD4 in the kernel.
  • Backport staging android drivers and ashmem from lge msm7x27 kernel
  • Sluggish accelerometer problem is fixed in the kernel with updated sensor drivers from the 2.6.35.9 lge msm7x27 kernel drivers
  • Improved Compass accuracy and response time with updated sensor drivers from the 2.6.35.9 lge msm7x27 kernel drivers
  • Backported the updates and fixes in mach-msm/qdsp5 code from the 2.6.35.9 lge msm7x27 kernel to resolve phone freezing while playing music with Google Play Music app.
  • Updated the interactive CPU governor with the latest version and removed smartass and interactiveX governors that were derivatives of the old interactive governor in addition to userspace and powersave governors that are more suitable for desktop systems.
  • Added SLQB as the default memory allocator
  • use optimized strnlen, strncpy, and crc32 functions in ARM (thanks to faux123)
  • added KSM support in the kernel and dalvik-vm (reverted in 07302012 build for now)
  • default to hardware EGL libraries (adreno200) instead of using generic android EGL libraries (thanks to leolawliet)
  • kernel patched to fix entropy depleting
  • swtiched to Koush's Superuser
  • updated to the latest CM bootanimation
  • CYAN-1602 security fix merged (Android-8219321 security fix to Bluebox security bug)
The followings are removed: extra themes, CMwallpaper, FM radio, large ring tones, CM services, development app, and all languages except English(US) and Spanish.

Changelog for CM and MiRaGe kernel:
Detailed list of CyanogenMod 7 changes are here.
Complete list of my changes on the IHO kernel are here.

Downloads:
MiRaGe 07132013 build. MD5sum: 7a909831b9f1cad23656908c1b32e8a1
VM670_VZW conversion for MiRaGe 07132013 build. MD5sum: 2bb4122d3d16df7796c69b216401ed09 (for VM670 on Verizon network) (read this link first regarding OV with VZW)
LS670 conversion for MiRaGe 07132013 build. MD5sum: 808014d10ce924dcef7b7c412fd19f42 (for LS670 on Sprint network)
Latest build of MiRaGe kernel (04/26/2013). MD5sum: d8cd3b0ead9d37789c916cebbb0e2214

For service providers other than VM, you can flash one of the VM670_VZW or LS670 conversion patches (not both) after flashing the VM670 build. If you are just upgrading from the previous MiRaGe by wiping only cache/dalvik-cache, you can flash either patch right after ROM without rebooting. Otherwise, booting once before flashing the patch is necessary after /system wipe.

GAPPS is not included. You can download it at the following link. Choose the package for CM7 (Android 2.3.7) (20110828).
Latest Version/Google Apps - CyanogenMod Wiki

Please see the IHO Wiki, stickies in this forum, and "Suggestions & Recommendations" section in the third post in this thread before asking questions.

Copying:
You can use my builds without my permission for derivatives/ports to distribute as long as proper credits given. Source is open and I have links above to all of the source code changes I have made on Android and kernel code. You can use the source code without any permission.
 
Last edited:

mrg666

Senior Member
Aug 4, 2011
1,966
4,784
Screenshots using Kovdev's ICS theme for ADW Launcher:
screeniesdi.png

screenies2p.png
 
Last edited:

mrg666

Senior Member
Aug 4, 2011
1,966
4,784
Suggestions & Recommendations:

- Link2SD is recommended. Learn how to use it and you will be rewarded. I have never had any kind of insufficient space problem with Link2SD. However, as soon as we root our phones and flash a custom ROM, we are now on the other side on our own. You will need to figure out how to find your way around and there are many different ways. Please find the good practices and methods that work for you and don't clutter the thread with insufficient space problems.
I use link2sd with 60 apps and it takes at most 5 minutes to update the ROM with the following way.
- copy the new zip to SDcard and boot into recovery
- wipe cache and dalvik-cache
- flash ROM
- reboot
- wait for link2sd warning for missing mount scripts
- run link2sd and recreate mount scripts (if you touch the link2sd notification from the pull down, link2sd will automatically open with mount scripts dialog)
- reboot
- run link2sd
-- relink dalvik-cache files
-- relink library files
- done!
And no application reinstalls necessary. There are many tricks/mods to link /data to the SD card. Whatever method we choose, there will be disadvantages and problems since OV does not have large internal storage as the other high-end phones do. The best practice is to sticking with one of the methods (I use and recommend Link2SD) and learning to deal with it. I don't want to use a method that is making the ROM dependent on the sdcard since not everybody has a large sdcard. Also, sdcards exhibit extremely wide variation of reliability and performance; mostly inferior to internal storage. If I link /data to sdext by default, people will be bringing here many complaints due to sdcard performance and failure. For my sanity, I will avoid that.
Additionally, if you have missing apps with Link2sd after the first boot following a ROM update, please check this post.

- Quickpic is recommended instead of default Gallery3D in the ROM. I will still keep Gallery3D in the ROM but you can just open the ROM zip file (don't unzip to your disk) with your archive manager (e.g. 7zip in Windows or file-roller in Ubuntu). Go to /system/app and delete Gallery3D.apk before flashing ROM. This is what I do. You don't need to reinstall Quickpic after your ROM updates unless you do a clean wipe.

- If you want an ICS theme, I recommend Achep's ICS theme. I must warn that there is some performance and battery life penalty that goes with such heavy themes. If you also want ICS icons in your launcher, I suggest kovdev's ICS launcher theme.

- The battery consumption is ~1.5% per hour on my OV running MiRaGe when I leave it over the night with data, wifi, location updates, email/calendar sync on and 0% TWS (see the screenshot below). Every phone is configured and used differently and the signal is different in different locations. If you have battery problems, it is not because of the ROM. Again, please don't clutter the thread with battery life problems.
screenshot1339880907988.png


- I don't recommend the Google Play Music app on the Market. The default Music app in the ROM works excellent without the heavy load on the system.

- My cpu settings that give me the best battery life is as follows. I recommend and use interactive governor which is a well-tested cpu governor developed by Google for Android. Just use the updated interactive governor in the latest kernel and choose the minimum CPU frequency as 122. This configuration gives better battery life and does not cause any extra lag. The smartass and interactiveX governors are derivatives of the interactive governor and I don't see any advantage of them over the default interactive governor. I will be removing those governors from the kernel for reducing the kernel size and eliminate unnecessary/idle code. Regarding the maximum CPU frequency, you need to find the maximum stable value by testing. 806 MHz is the maximum recommended value since anything higher increases heat and battery consumption considerably.

- Please check the followings before reporting WiFi problems. Nobody is making popcorn in the microwave, your neighbor or your kids are not hogging the WiFi watching Youtube or Netflix, your router is not a cheap junk, the fridge is not running near the router, your network provider is not having problems, the cat is not sleeping on the warmth of the router, the dog has not tipped the router's antennas, you are not trying to connect to your neighbor's WiFi ... :)

- If headphone is plugged in and unplugged before starting the camera app, camera records video without sound. There are ways to resolve this temporarily. If you do a quick reboot in Links2SD (it takes 15-20 seconds) camera records video with sound after that. If you disable the shutter sound in camera, this problem does not happen. Lastly, if you take a picture before recording video, the video is recorded with sound normally. I am looking into this and will post here when I can find a permanent solution.
 
Last edited:

mrg666

Senior Member
Aug 4, 2011
1,966
4,784
MiRaGe 06112012

I have updated the builds to include two fixes
- Fix occasional completely mute incoming call in Phone.apk
- Timestamp doesn't contain date info, therefore we need to construct it and adjust it if daylight savings applies in frameworks base

Please see the OP to find the download links. The details of the changes are in the CM code review site linked in the OP.
 

mrg666

Senior Member
Aug 4, 2011
1,966
4,784
This Is awesome :D updates will be so easy to follow :D what motivated you? :)

I don't know, simply accumulation of many things I guess. Maybe, I could finally convince myself that there were enough contributions that are worth making a thread.

Could this be flashed over bobzhome version? Just thought I'd ask, was just going to attempt it.

You can try with just wiping cache/dalvik-cache. If there are problems you can't resolve, (probably Launcher Pro in BobZ will conflict with ADW in MiRaGe), you can do a clean wipe and reflash. Don't forget a nandroid before doing anything.
 
Last edited:
  • Like
Reactions: futureapps

mrg666

Senior Member
Aug 4, 2011
1,966
4,784
InteractiveX is just a derivative of interactive and I have not seen any advantage of locking the minimum cpu frequency when screen is off. Just the opposite, it creates more trouble.

I use and recommend interactive governor. Actually, I have just updated the interactive governor to the latest version today. You can download the latest kernel from my github repo. Just use the updated interactive governor in the latest kernel and choose the minimum CPU frequency as 122. It gives much better battery life and does not cause any extra lag.
 

moore.bryan

Senior Member
Apr 26, 2011
564
58
Thanks for all your work, mrg666! I'll hit this up when I get home; my work's proxy doesn't allow access to github... apparently, it's "for hackers." ;-)
 
  • Like
Reactions: mrg666

SuperFilapo

Senior Member
Oct 16, 2011
327
95
Hidden Valley Lake, CA
Kinda obvious, but I have subscribed to this.

I have never had a phone of any kind that has lasted more than 6 months. This LG670 has lasted over two years! And to boot I've used this 5 times more per day than any other phone! This is a great, not good, device. Ultra reliable. Efficient and effective. Two plus years... still just like new!

And to think I've been running MiRaGe more than any other ROM. I have flashed hundreds! But this has always been my favorite!

Thank you mrg! Glad you're still on board with the LG670 CULT!
 
Last edited:

yolo2die

Senior Member
Oct 28, 2010
376
71
Minnesota
Could this be flashed over bobzhome version? Just thought I'd ask, was just going to attempt it.


Ok I flashed this right over Bobzhome. No problems to report so far. And then just made ADW launcher default(not sure if that was necessary). Point is it works.

As far as performance if any, remains to be seen, question will be is if battery drain will be not as quick.

edit: issues with updating apps, says theres insufficient storage, plenty remains, must have some something to do with how bobzhome uses apps2sd vs method used in your rom(haven't done much investigation yet)??? But no problem running apps that were previously install in rom before the install.
 
Last edited:

mrg666

Senior Member
Aug 4, 2011
1,966
4,784
I have uploaded the 06142012 build of the kernel.

- Fixed the sluggish accelerometer problem
- Fixed inaccurate/slow Compass
- Updated the interactive governor

See the OP for the links to download from my github repo.
 
  • Like
Reactions: Raul027

pandulce1

Senior Member
May 13, 2010
160
20
New York
Maybe I'm missing something, but the OP is still sending me to the 06-11 build. The github repo has this same build as well. :/
 

Top Liked Posts

  • There are no posts matching your filters.
  • 54
    I have been building LG Optimus V ROMs from the CM/IHO repo and sharing my builds with the community in the IHO thread since some time. Besides the geek satisfaction, I build for removing some extras and customize for performance. Following the original IHO thread has become too difficult due to its enormous size and simultaneous discussion of many other builds. This thread is for sharing what I build for myself with the community, a place for receiving feedback, posting changes for my builds, and returning at least some of what I received from this community.

    Please thank/donate to CM project, and especially the IHO developers, Blarf, Bob, Jerry, LeslieAnn, tdm, thekraven, and many others.

    I prefer MiRaGe to be a barebones/basic ROM closely following CyanogenMod. The changes below are only aimed at enhancing the performance, fixing bugs, and slight touches on the interface without diverging from the original.

    The followings are added:
    • Custom MiRaGe kernel compiled with gcc-4.6 linaro toolchain using -O2 optimization
    • ICS fonts for system and lockscreen clock,
    • ICS style battery, signal, wifi, sdcard, data icons for statusbar,
    • ICS icons for the power widgets, menu, and settings,
    • transparent notification background,
    • Android boot logo
    • Cyanbread_light: a tiny theme to replace the orange highlights with cyan/blue that matches with the recent Google Play apps (included in the ROM) (source code is here )
    • Unique bluetooth MAC addresses. Source code here
    • Baseband version in About Phone screen. Source code here
    • Bluetooth volume settings are not limited by voice dialer. Source code here
    • AGPS patch for better accuracy. Available here
    • Optional stock Android 2.3.5 Launcher2 available here
    • Simple IO scheduler in the kernel which has less overhead for the system and more suitable for flash memory
    • BFS 4.04 CPU scheduler for quicker user interface and better efficiency
    • TinyRCU Read-copy update (RCU) synchronization mechanism which improves scalability by allowing readers to execute concurrently with writers and reduces the system overhead.
    • Many bug/security fixes for ext2, ext3, ext4, fat, mmc file systems, sound system, block layer, bluetooth, networking, and ARM architecture backported from 2.6.32.59 kernel.
    • Computing network protocol sequence numbers and fragment IDs using MD5 instead of inaccurate MD4 in the kernel.
    • Backport staging android drivers and ashmem from lge msm7x27 kernel
    • Sluggish accelerometer problem is fixed in the kernel with updated sensor drivers from the 2.6.35.9 lge msm7x27 kernel drivers
    • Improved Compass accuracy and response time with updated sensor drivers from the 2.6.35.9 lge msm7x27 kernel drivers
    • Backported the updates and fixes in mach-msm/qdsp5 code from the 2.6.35.9 lge msm7x27 kernel to resolve phone freezing while playing music with Google Play Music app.
    • Updated the interactive CPU governor with the latest version and removed smartass and interactiveX governors that were derivatives of the old interactive governor in addition to userspace and powersave governors that are more suitable for desktop systems.
    • Added SLQB as the default memory allocator
    • use optimized strnlen, strncpy, and crc32 functions in ARM (thanks to faux123)
    • added KSM support in the kernel and dalvik-vm (reverted in 07302012 build for now)
    • default to hardware EGL libraries (adreno200) instead of using generic android EGL libraries (thanks to leolawliet)
    • kernel patched to fix entropy depleting
    • swtiched to Koush's Superuser
    • updated to the latest CM bootanimation
    • CYAN-1602 security fix merged (Android-8219321 security fix to Bluebox security bug)
    The followings are removed: extra themes, CMwallpaper, FM radio, large ring tones, CM services, development app, and all languages except English(US) and Spanish.

    Changelog for CM and MiRaGe kernel:
    Detailed list of CyanogenMod 7 changes are here.
    Complete list of my changes on the IHO kernel are here.

    Downloads:
    MiRaGe 07132013 build. MD5sum: 7a909831b9f1cad23656908c1b32e8a1
    VM670_VZW conversion for MiRaGe 07132013 build. MD5sum: 2bb4122d3d16df7796c69b216401ed09 (for VM670 on Verizon network) (read this link first regarding OV with VZW)
    LS670 conversion for MiRaGe 07132013 build. MD5sum: 808014d10ce924dcef7b7c412fd19f42 (for LS670 on Sprint network)
    Latest build of MiRaGe kernel (04/26/2013). MD5sum: d8cd3b0ead9d37789c916cebbb0e2214

    For service providers other than VM, you can flash one of the VM670_VZW or LS670 conversion patches (not both) after flashing the VM670 build. If you are just upgrading from the previous MiRaGe by wiping only cache/dalvik-cache, you can flash either patch right after ROM without rebooting. Otherwise, booting once before flashing the patch is necessary after /system wipe.

    GAPPS is not included. You can download it at the following link. Choose the package for CM7 (Android 2.3.7) (20110828).
    Latest Version/Google Apps - CyanogenMod Wiki

    Please see the IHO Wiki, stickies in this forum, and "Suggestions & Recommendations" section in the third post in this thread before asking questions.

    Copying:
    You can use my builds without my permission for derivatives/ports to distribute as long as proper credits given. Source is open and I have links above to all of the source code changes I have made on Android and kernel code. You can use the source code without any permission.
    15
    Suggestions & Recommendations:

    - Link2SD is recommended. Learn how to use it and you will be rewarded. I have never had any kind of insufficient space problem with Link2SD. However, as soon as we root our phones and flash a custom ROM, we are now on the other side on our own. You will need to figure out how to find your way around and there are many different ways. Please find the good practices and methods that work for you and don't clutter the thread with insufficient space problems.
    I use link2sd with 60 apps and it takes at most 5 minutes to update the ROM with the following way.
    - copy the new zip to SDcard and boot into recovery
    - wipe cache and dalvik-cache
    - flash ROM
    - reboot
    - wait for link2sd warning for missing mount scripts
    - run link2sd and recreate mount scripts (if you touch the link2sd notification from the pull down, link2sd will automatically open with mount scripts dialog)
    - reboot
    - run link2sd
    -- relink dalvik-cache files
    -- relink library files
    - done!
    And no application reinstalls necessary. There are many tricks/mods to link /data to the SD card. Whatever method we choose, there will be disadvantages and problems since OV does not have large internal storage as the other high-end phones do. The best practice is to sticking with one of the methods (I use and recommend Link2SD) and learning to deal with it. I don't want to use a method that is making the ROM dependent on the sdcard since not everybody has a large sdcard. Also, sdcards exhibit extremely wide variation of reliability and performance; mostly inferior to internal storage. If I link /data to sdext by default, people will be bringing here many complaints due to sdcard performance and failure. For my sanity, I will avoid that.
    Additionally, if you have missing apps with Link2sd after the first boot following a ROM update, please check this post.

    - Quickpic is recommended instead of default Gallery3D in the ROM. I will still keep Gallery3D in the ROM but you can just open the ROM zip file (don't unzip to your disk) with your archive manager (e.g. 7zip in Windows or file-roller in Ubuntu). Go to /system/app and delete Gallery3D.apk before flashing ROM. This is what I do. You don't need to reinstall Quickpic after your ROM updates unless you do a clean wipe.

    - If you want an ICS theme, I recommend Achep's ICS theme. I must warn that there is some performance and battery life penalty that goes with such heavy themes. If you also want ICS icons in your launcher, I suggest kovdev's ICS launcher theme.

    - The battery consumption is ~1.5% per hour on my OV running MiRaGe when I leave it over the night with data, wifi, location updates, email/calendar sync on and 0% TWS (see the screenshot below). Every phone is configured and used differently and the signal is different in different locations. If you have battery problems, it is not because of the ROM. Again, please don't clutter the thread with battery life problems.
    screenshot1339880907988.png


    - I don't recommend the Google Play Music app on the Market. The default Music app in the ROM works excellent without the heavy load on the system.

    - My cpu settings that give me the best battery life is as follows. I recommend and use interactive governor which is a well-tested cpu governor developed by Google for Android. Just use the updated interactive governor in the latest kernel and choose the minimum CPU frequency as 122. This configuration gives better battery life and does not cause any extra lag. The smartass and interactiveX governors are derivatives of the interactive governor and I don't see any advantage of them over the default interactive governor. I will be removing those governors from the kernel for reducing the kernel size and eliminate unnecessary/idle code. Regarding the maximum CPU frequency, you need to find the maximum stable value by testing. 806 MHz is the maximum recommended value since anything higher increases heat and battery consumption considerably.

    - Please check the followings before reporting WiFi problems. Nobody is making popcorn in the microwave, your neighbor or your kids are not hogging the WiFi watching Youtube or Netflix, your router is not a cheap junk, the fridge is not running near the router, your network provider is not having problems, the cat is not sleeping on the warmth of the router, the dog has not tipped the router's antennas, you are not trying to connect to your neighbor's WiFi ... :)

    - If headphone is plugged in and unplugged before starting the camera app, camera records video without sound. There are ways to resolve this temporarily. If you do a quick reboot in Links2SD (it takes 15-20 seconds) camera records video with sound after that. If you disable the shutter sound in camera, this problem does not happen. Lastly, if you take a picture before recording video, the video is recorded with sound normally. I am looking into this and will post here when I can find a permanent solution.
    12
    I have ordered an EVO and a Reverb in the weekend. I will be primarily building/developing MiRaGe for EVO and possibly for Reverb. But I will keep an eye on MiRaGe for OV for important fixes in CM7.2. So MiRaGe for OV is now in the maintenance mode officially.

    Although this is not a goodbye, it is still a good time to thank you all for all of your support and feedback. It has been a wonderful ride with your company.
    Cheers!
    11
    MiRaGe 09232012

    Hi Everyone,
    Sorry that I was not able to work on this project for a while. I have synced with the CM7.2 repo and rebuilt MiRaGe today. The download links of the new 09232012 build is in the OP now. Nearly after two months, there were still no big changes given that GB is not getting much attention anymore but you can find the list of changes using the Gerrit review link in the OP. Enjoy!