[Samsung Galaxy Nexus] MWisBest:
Changelog, News, Etc.​

Lollipop Beta Changelogs:

2015/01/08

- Updated the camera HAL.

This is going to be a little... fragile, at first, but in the long run it's needed. Stock camera app saves pictures now at least.

You may also notice that there's a 5.1MP resolution now (clear your camera app's data if you don't see it), despite our camera supposedly being 5.0MP all these years. Turns out the sensor's native resolution is indeed a whopping 16 pixels taller and 16 pixels wider than we've been using.

2015/01/04

- Added back some of the classic FML optimizations and more.

Built with -fstrict-aliasing flag, C++11, and the Linaro GCC 4.9 toolchain.

- Updated to AOSP "android-5.0.2_r1" tag.

As usual, the only real change was them bumping the version number.

- Improved flashing.

The speed of flashing the ROM zip is now much faster.

- Superuser is now built-in.

There's no need to flash SuperSU. You can find Superuser in the Settings app. You may have to enable the "Development Settings" menu to see it.

Some apps are a little sketchy with this Superuser though, most notably Titanium Backup. If you have issues, try flashing SuperSU.

- Video playback should be fixed.

YouTube in particular seems OK. If you have some weird format you're playing back locally I cannot make any guarantees though.

- The camera situation has improved and also regressed.

The stock camera is kinda back to the point of where it was with the KitKat Beta builds:

---- Preview works. Saving photos does not work. Video recording kinda works.

--- However:

---- The camera calibration is a little messed up. Long story, but it'll be fixed soon. So your white balance may look kinda funky, among other things.

- Audio quality is improved, with support for 192kHz FLAC as well.

This is possible thanks to a new audio resampler, which doesn't impose the same sample rate restrictions of the stock Android ones. It also has far better quality than the stock Android resamplers.

- WiiMotes can now be paired via Bluetooth.

I used to be a bit of a Wii hacking enthusiast... I think I still need to add some more stuff to make it useable as a gamepad or something, but yeah.

- Fixed location services issues.

- (toro) Fixed switching between 4G/LTE and 3G/CDMA network settings.

- Kernel changes:

Reclaimed 38MB of RAM from the carveout stuff.

Removed HDMI's framebuffer, saving an additional ~16MB of RAM. With Lollipop, MHL/HDMI out isn't working with our old HWComposer, so might as well save some RAM in the mean time.

Added overclocking support, as well as adjusted the stock frequencies a little.

Added the GPU kernel driver back into the kernel, rather than building it as a separate module.

Switched to LZO compression for the kernel. It results in a slightly larger size to the kernel, but it boots faster.

Added the "purple tint fix".

Added compiler flag to tune code for Cortex-A9 CPU.

Built with Linaro GCC 4.9 toolchain.

Older Builds:

2014/11/16

- Fixed the RIL.

There were a few things that went into this, and I can't really take much credit for it other than being persistent in trying to fix it.

1. rild needed a little fix-up to somewhat return it to pre-Lollipop form. Basically Google is forcing Qualcomm's junk upon the world. [MENTION=2875964]dhiru1602[/MENTION] pointed me in the direction of some commits from rmcc to hardware/ril that fixed this part of the problem.

2. The kernel needed a commit to support some new junk related to networking in Lollipop. [MENTION=2633638]Ziyan[/MENTION] linked me to the change in question.

3. toro's RIL was trying to add a route to the table with a netmask of 255.255.255.255, which isn't correct and won't fly with Lollipop anymore I guess. [MENTION=4243514]Hashcode[/MENTION] was the one to point out that this was an issue and helped me figure out that the netmask was a string in the RIL blob that I could edit freely, and after some brainstorming with dhiru1602 I was able to stick in the right netmask of 255.255.255.000.

- Updated to AOSP "android-5.0.0_r6" tag.

Really the only change is that the build number is bumped to LRX21T.

- Switched out a couple small proprietary binaries with a reverse-engineered open-source version.

Thanks to [MENTION=3457922]stargo[/MENTION] who has really been killin' it for the Motorola OMAP devices recently, we now have a reverse-engineered pvrsrvinit binary (the executable that fires up the GPU drivers on boot-up). This is especially important because the proprietary pvrsrvinit wasn't compiled as PIE (position-independent executable). With Lollipop, they're forcing everything to be PIE, which is good because PIE is better from a security stand-point. Previously I had been adding a workaround to enable support for non-PIE, which I now don't need.

- Built the ROM with "WITH_DEXPREOPT" set to true.

This basically just adds the ".odex" files to /system. With ART this is important because it cuts down on those lengthy boot-up times because instead of compiling the apps' code on the device, it now compiles it on my computer when I build the ROM instead.

- Changed the "Android is upgrading..." screen to prevent burn-in.

Rather than use Lollipop's eye-hurting bright white theme on this screen, I've switched it back to the classic, darker theme.

2014/11/09

- Switched back to the old OTA package format.

With Lollipop they're now, by default, flashing something similar to a system.img. I switched back to the old format. THIS IS CAUSING VERY LENGTHY FLASH TIMES NOW HOWEVER, I HOPE TO FIX THESE SOON.

- Changed the kernel to build with GCC 4.7.

With Lollipop, Google switched to GCC 4.8. GCC 4.8 has never been kind to the Galaxy Nexus kernel, I'm surprised it was booting at all in the first place.

- Added "Ambient Display".

Apparently I need to add a "pick-up" or "significant motion" sensor for it though, so it displays something when the phone is picked up.

- Fixed chromium crashing.

This fixes Browser crashing upon open, among other things. This fix has been in chromium itself for nearly 4 months now, I don't know what the heck Google is doing to AOSP to make it so FUBAR lately...

- Fixed lag in Recents menu.

Now it's smoother than KitKat's, in my opinion.

- Added back F2FS support.

F2FS is now supported again, HOWEVER, it is NOT supported on the /system partition. It really didn't do any good for /system anyway.

- Updated various icons.

The Dialer icon in particular was bothering me. Other things that aren't visible in the launcher, e.g. SettingsProvider, have been fixed as well.

- Fixed FLAC playback, among other media decoding issues.

Just needed a sync-up in the device tree with one thing that I think Google DID do a nice job of with Lollipop actually.

KitKat Beta Changelogs:

2014/10/15

- Cleaned up the kernel.

Ziyan went over all his work not long ago and cleaned up the commit history and whatnot. He's letting me do the task of merging in the GPU driver stuff, so I'm currently just getting the kernel to a "clean slate" of sorts for other kernel devs to fork and build off of. Basically this should hopefully be the new "stock" or "Google" kernel. As a result, there's some bells and whistles missing from this build. It does however include some new audio updates that weren't in the previous kernel, which leads me to this...

- Changed audio sampling rate to 48kHz.

Previously the sampling rate has been 44.1kHz. The Galaxy Nexus supports 48kHz though! Here's what mainly sparked this change: since KitKat, the UI audio effects (e.x. touch sounds) have been switching over to 48kHz. With the Galaxy Nexus still using 44.1kHz, UI sound playback became kinda sluggish, and this was a big contributor to it. The UI sounds use the "fast track" audio path (where it tries to do as little processing as it can to the audio in order to play it with a minimum amount of latency), however a requirement of using this is that no resampling (e.g. converting 48kHz to 44.1kHz, like it has been doing currently with KitKat) can be required on the audio being played. Therefore the UI sounds were taking the "deep buffer" audio path, which has a delay to it. In switching to 48kHz, the "fast track" path is actually even faster now than it has ever been previously, and the Galaxy Nexus was already TOP OF THE LINE when it comes to audio latency believe it or not!

Another thing about this is that there is now support for playback of 96kHz audio files.

- Some updates to the camera HAL.

This hasn't fixed the situation of stock and stock-based camera apps crashing when taking a picture, but it's a start on it though.

NOTICE: Poweramp (and probably most other media players that use their own native code for audio playback rather than straight-up using the built-in Android APIs) is being pissy about the sampling rate change. If you experience issues with music playing, especially things like popping or crackling, please try Play Music or Apollo and see if your issue is still present. I know the UIs for Play Music and Apollo are pretty awful, but I can't write my own media player because I'm dealing with this camera stuff! :(

KitKat Stable Changelogs:

2014/07/05

(Operation: Streamline)

ROM: Synced with OmniROM's latest changes as of around 6:30 AM 2014/07/05 UTC.

ROM/Build: Fully updated to AOSP 4.4.4 (specifically, the android-4.4.4_r1 tag), which really doesn't change much though...

ROM/Build: Stopped including the unused (as far as I can tell) dock.png in /system/vendor/res/images/dock/

ROM/Build: Leveraged a feature added to updater-script creation by OmniROM which coincidentally makes the ROM flashable on any format of /system partition, beit F2FS, EXT4, exFAT, whatever.

ROM/Build: Stopped including Voice Dialer. Voice Dialer is just an unpolished piece of junk which really isn't used ever since Google Now.

ROM/Build: Stopped including 0xBenchmark.

ROM/Core: A number of changes added for completely seamless and simultaneous F2FS and EXT4 support.

ROM/General: Switched to the Android KitKat boot animation, which takes up nearly 4MB less space than OmniROM's boot animation.

ROM/General: Used OptiPNG heavily on numerous things in an effort to save space.

ROM/Kernel: Added F2FS support, nearly 500 commits were merged in for this.

ROM/Kernel: Relaxed BIGMEM a bit to hopefully fix Camera crashing for some users. (Only a 4MB difference BTW)

ROM/Kernel: Optimized CPU L2 cache settings slightly.

TWRP: Added support for seamless and simultaneous F2FS and EXT4.

I'm forgetting a number of things and I'm not going into as much detail on some of this as I'd like to. Frankly, I'm exhausted. Maybe I'll expand on this tomorrow. Maybe.

Oh I also submitted 8 things to the OmniROM Gerrit. One has been merged so far, the others probably will probably be merged in the next day or two.

Older Builds:

2014/06/05 v2

(Operation: Chocoholic)

ROM: Synced with OmniROM's latest changes as of around 10:00 PM 2014/06/05 UTC.

V2 just fixes a bug where Dialer would crash upon entering the Call Log.

2014/06/05

(Operation: Chocoholic)

ROM: Synced with OmniROM's latest changes as of around 7:00 AM 2014/06/05 UTC.

ROM: Fully updated to AOSP 4.4.3 (specifically, the android-4.4.3_r1.1 tag).

ROM/Build: Removed some duplicate alarm and notification sounds in my never-ending effort to slim down the build size.

ROM/General: A few things were added to accommodate building for the Kindle Fire HD 7" that might spill over into the Galaxy Nexus builds (no harm, if anything an improvement).

Wanted to get an Android 4.4.3 build out ASAP, so this build doesn't have much in terms of changes/fixes from myself. This weekend I'll be going on vacation, and after I get back I'm planning on adding F2FS support finally. :good:

BTW, you might want to make sure you have the 4.4.3 GApps.

2014/05/31

(Operation: Jackpot)

ROM: Synced with OmniROM's latest changes as of around 11:30 PM 2014/05/31 UTC.

ROM/ART: Pulled in some things from AOSP's master branch to hopefully decrease initial boot-up time for ART.

ROM/Build: Fixed some more instances of code being compiled/optimized for a generic ARM CPU instead of the Cortex-A9 specifically.

ROM/Build: Included some requested translations.

ROM/Build: Found a fix by PrimeDirective to build frameworks/base/core with -fstrict-aliasing.

ROM/Dalvik: Pulled in some things from AOSP's master branch to increase overall speed for Dalvik.

ROM/General: Fixed a bug where overclocking would revert when the screen was turned off.

ROM/General: Added battery charging LED support.

ROM/General: Fixed notification LED flash interval being way too long by default.

ROM/General: Experimental improvements for GPS. (See: GitHub Commit)

ROM/Kernel: Added the "purple tint fix" commit.

ROM/Settings: Fixed Settings not being translated.

Quite the changelog here! ART is feeling a little snappier in this build but Dalvik might still be faster! :eek:

2014/05/26

(Operation: Speed Racer)

ROM: Synced with OmniROM's latest changes as of around 7:00 AM 2014/05/26 UTC.

ROM/Build: Improvements to LTO.

ROM/Build: Fixed a potential issue where LTO wouldn't provide any benefits.

ROM/Build: Fixed a bug where the compiler was optimizing towards a generic ARMv7 CPU instead of a Cortex-A9 CPU.

ROM/Build: Fixed a couple small things that were overriding the -O3 flag with -O2.

Uhh... this build is ****ing fast. I noticed the speed improvement before even flashing the ROM: decryption in the TWRP build was at least 5x faster. After flashing and rebooting, I saw the same improvements in decryption... there's a little animation that plays when decryption is running, and it's so fast that the animation isn't even animated, it's just a quick little still image. It's just ridiculous how fast this build is.

2014/05/10

(Operation: Preparation)

ROM: Synced with OmniROM's latest changes as of around 11:00 PM 2014/05/10 UTC.

ROM: Updated (mk)sh to R48. (Small thing most people won't notice)

ROM: Small bugfix/update for oprofile. (Small thing most people won't notice)

ROM: Some behind-the-scenes stuff to help make sure the next (overly ambitious) FML build goes smooth.

Nothing much here, just figured I'd get a synced up build out now before I end up not being able to because I'm working on some bigger changes for FML.

2014/04/29

(Operation: Exterminator)

ROM: Synced with OmniROM's latest changes as of around 4:00 PM 2014/04/29 UTC.

ROM/ScreenRecord: Fixed ScreenRecord crashing instantly.

ROM: Tried tweaking things to reduce battery consumption regression that popped up in the 2014/04/12 build.

ROM/Audio: Thanks to syncing with OmniROM, the distortion that sometimes occurred in audio playback is fixed.

ROM/GPS: Blind attempt at improving GPS lock-on speed, probably didn't work but I can't tell yet.

ROM: Miscellaneous improvements and bug fixes that will probably go unnoticed.

Not a lot of exciting stuff here, but I figured I'd get this build out with the various bug fixes that accumulated since the last one.

BTW, the issue with ScreenRecord was that it attempted to record the phone's audio directly (the audio it outputs through headphones/speaker), which has issues with at the very least the Galaxy Nexus if not all non-Qualcomm hardware. I had to switch it so that it records the phone's microphone instead.

2014/04/12

(Operation: Flyswatter)

ROM: Synced with OmniROM's latest changes as of around 7:00 AM 2014/04/12 UTC.

ROM: Re-added multi-core DexOpting (speeds up the first boot after a dalvik-cache wipe), OmniROM removed this as it caused problems for some people it seems, but it's working just fine over here on FML.

ROM/OmniTorch: Fixed FC when attempting to create a Torch widget.

ROM/DSPManager: Fixed an aliasing violation (due to a recent change to DSPManager which was courtesy of CyanogenMod -.-).

ROM/ART+Dalvik+Settings Added an option in Development Settings to toggle the "DexOpt /system to /cache" feature due to it having a few possible but rare issues.

Blaaahhh. Sorry this build took so long, it's just after I noticed OmniROM removed the multi-core DexOpting I had to add it back due to how long an initial bootup with ART and 150 apps was taking (it seemed like an entire hour honestly), and then once I figured that all out I ended up having one last bug to fix with the new toggle I added for DexOpt /system to /cache. I didn't want to release something that I didn't feel was good enough!

2014/04/02

(Operation: Buzzkill)

ROM: Synced with OmniROM's latest changes as of around 11:00 PM 2014/04/02 UTC.

ROM: Removed some stuff I didn't feel was necessary to include (some ugly live wallpapers, the video editor, the "Dev Tools" app).

ROM: Removed OpenDelta (OmniROM's updater).

ROM/RIL: Fixed issues when using the Quick Settings tile to switch between 4G/LTE and 3G/CDMA. For the past 4 or 5 builds, using this toggle would make mobile data not work whatsoever. Also, the toggle used to think there was 3 different data settings ("2G Only", "2G/3G Preferred", "4G/LTE"), now it's only 2 and correctly described ("3G/CDMA, "4G/LTE").

ROM/ART: Merged in some stuff from AOSP's master branch of ART. This is kind of experimental, there might be some issues with some apps, if so let me know.

ROM/ART+Dalvik: Make apps in /system store their dalvik-cache on the /cache partition. Previously the /cache partition just sat there, all ~500MB of it empty. A side-effect of this is that when using ART, you have to use a smaller GApps package, as when using ART the dalvik-cache takes up more space, and with the full GApps packages it's too much. If you're using the larger GApps because you're concerned about saving space on the /data partition, if you just install the full GApps stuff via the Play Store (therefore storing the apk on /data), you're still saving space due to all the space freed up via making using the /cache partition.

TWRP-Recovery: Now building and uploading TWRP recovery images as well. Current improvements over official TWRP builds: Added backlight control, fixed decryption of encrypted /data partition.

ROM/Recovery: Fixed MTP (access to internal storage via USB) and ADB not working in TWRP (shouldn't require usage of my TWRP build, just the ROM should be sufficient).

Please make sure to read the note about ART and GApps. This build is part of "Operation: Buzzkill", attempting to find and squash as many bugs as possible. :)

2014/03/22

ROM: Synced with OmniROM's latest changes as of around 7:30 AM 2014/03/22 UTC.

ROM: Added 0xBenchmark. Details below.

ROM/OmniTorch: Fixed "Bright" option showing up even though it isn't available. Known Issue: OmniTorch widgets are broken.

ROM/PhaseBeam: Fixed PhaseBeam Live Wallpaper causing extreme lag.

ROM/RIL: Merged in more fixes courtesy of [MENTION=5354353]DevVorteX[/MENTION]

Since I wasn't able to do the big stuff I wanted I figured I'd do a bunch of small stuff so it feels like I got a decent amount of things accomplished.

As for 0xBench, this is something I stumbled across in Linaro's git repo. Figured I'd give it a shot. Play around with it, feel free to share what results you're getting with it and at what kernel settings (overclock, specific kernel if non-stock, etc).

2014/03/10

ROM: Synced with OmniROM's latest changes as of around 12:30 AM 2014/03/10 UTC.

No changes other than the sync with this build, the next build should have some cool new stuff though.

2014/02/26

ROM: Synced with OmniROM's latest changes as of around 12:00 AM 2014/02/26 UTC.

ROM/RIL: Added code from [MENTION=5354353]DevVorteX[/MENTION] to improve mobile data stability.

Well I'm about a day late with this one, better than weeks though.

BTW today is my birthday ^.^

2014/02/22

ROM: Synced with OmniROM's latest changes as of around 12:30 AM 2014/02/22 UTC.

Build: Re-enabled LTO.

Build/Toolchain: Linaro toolchains updated.

Didn't do huge changes with this build since I want to make sure that if there's any issues, I can know that it's probably due to LTO and then just simply disable LTO in problem areas.

2014/02/01

ROM: Synced with OmniROM's latest changes as of around 6:00 PM 2014/02/01 UTC.

Build: Fixed issues with repo after git updated to 1.9.rc1 (apparently repo wasn't fond of having rc1 in the git version number!)

Navbar customization is in this build, along with OmniSwitch!

I'm still busy with school unfortunately.

The reason I had more time for FML before the holidays was that I didn't really have my priorities straight. School had began taking a back seat to things like FML and video games etc. Since then I've rectified that, as school should really be my #1 priority, but now dev work has ended up where schoolwork was before. It's not easy finding a balance between work and fun, but I think I'm getting there!

2014/01/25

ROM: Synced with OmniROM's latest changes as of around 4:00 AM 2014/01/25 UTC.

ROM: Miscellaneous fixes to get it building after some of OmniROM's latest changes.

Build: Linaro toolchain was updated, I think.

Not a lot of stuff with this build, I've been pretty busy lately and haven't had a lot of time to devote to FML. Things are looking better now, so hopefully I'll have the time to do more frequent builds and such. I'm looking into possibly having a computer running 24/7 that'll do nightly or bi-nightly builds of FML, I just need to see if it'll have trouble with the specs of the computer I'd have to use for it and figure out how to manage automatically merging in OmniROM's changes.

2014/01/15

ROM: Synced with OmniROM's latest changes as of around 12:00 AM 2014/01/15 UTC.

Kernel: Redid all the work done for the New Year's build in hopes of fixing the screen freezing problem.

Put a lot of time into this. Please let me know if the screen still freezes.

Voltages are a bit higher than they were with the New Year's kernel, so battery life will probably be slightly worse, but that can be tweaked for the next build. The priority was fixing the lock-ups.

2014/01/09

ROM: Synced with OmniROM's latest changes as of around 4:15 AM 2014/01/09 UTC.

Just synced up with the latest OmniROM code in this build, and also the toolchains were updated since the last build. There were some reverts of things in OmniROM that required me to use a bit of tinkering with git to get everything merged correctly.

Apologies for the lack of updates lately, I've been busy with life and -40*F/-40*C (-40 is where the two scales intersect lmao) wind chills.

2014/01/01

ROM: Synced with OmniROM's latest changes as of around 6:00 PM 2014/01/01 UTC.

ROM/Settings: Fixed force closing when attempting to use WiFi Tethering.

ROM/Settings: Fixed not being able to turn LTE on again after turning it off.

ROM/Keyboard: Added the necessary lib to support gesture typing out-of-the-box.

Kernel: Pulled in a lot of bells and whistles. You can view lots of them by going into Settings --> Performance.

I'd appreciate it if you'd give the kernel a try before flashing a different one, I put a lot of work into this last night. I'll try and leave more details as to what's all there soon.

2013/12/30

ROM: Switched to OmniROM as the ROM base.

ROM/Build: Didn't build with Link-Time Optimization just yet, and a few other miscellaneous FML sprinkles are still missing.

ROM/Settings: Added built-in Superuser as OmniROM didn't have it, so flashing SuperSU is not required nor recommended.

You'll need to wipe /data before flashing this build, it's basically like flashing a new ROM. Back up everything of course.

2013/12/21

ROM: Selectively synced with CM's latest changes as of around 4:30 AM 2013/12/21 UTC.

ROM/Build: Enabled Link-Time Optimization.

ROM/Build: Fixed every aliasing violation except in frameworks/opt/net/voip and external/openssh, allowing for further optimizing.

Make sure you wipe /system too before flashing this one, regardless of which FML build you're coming from. This is a little experimental still, but it seems good enough to release now considering I still don't endorse this ROM as a major daily driver lol.

2013/12/15

ROM: Synced with CM's latest changes as of around 4:30 AM 2013/12/15 UTC.

ROM/RIL: SMS/MMS should be fixed on new flashes. (via CM sync)

ROM/RIL: Fixed connection to 3G after turning off WiFi. (via CM sync, slightly "expedited" if you get what I'm saying...)

ROM/Hardware: Small possible speed-up brought back from the previous CM-10.2 FML Linaro/Optimized builds.

If you're having issues with SMS/MMS still, go to Apps and clear the data of Phone/Messaging Storage, then reboot. If that still doesn't fix it, please let me know.

I didn't get a chance to look closer at the Handcent FCing issue, but it might be fixed via the CM sync, so don't be afraid to give it another try.

To-Do.​

Slim down the build by putting less used stock applications into a separate flashable .zip, such as Browser.

Experiments I'm Looking Into​

Creating Black Holes with my phone's ridiculously awesome speed.