I built this ROM from AOSP source and added 40+ Linaro patches to the source for strict-aliasing compiler optimizations. Roms include Linaro string handling routines for memory optimizations. No android kitchens were used to make this rom at all, everything is source build
All ROMs and kernels are built with SaberMod toolchains. The ROMs are built with GCC 4.9 toolchains. The kernels are built with GCC 4.8 toolchains.
Instructions: First time flashing this ROM on your Nexus 7, or coming from another ROM?
Root the device and install ClockworkMod or TWRP Recovery.
Perform a NANDroid backup of your current ROM.
Format the system, data & cache partitions of your device.
Perform a factory reset.
Flash ROM.
Flash Gapps package (optional)
Flashing a newer version?
Perform a NANDroid backup of your current ROM.
Wipe cache and dalvik-cache in recovery
Flash ROM
Flash Gapps add-on package (optional)
A few notes on battery/charging
After flashing ROM and/or kernel you may get some battery drain. Give the device time to settle into the ROM/kernel, and after a full charge or two you should notice improved battery life.
Flashing a Testing kernel?
I've decided to add testing kernels which will allow users to try-out a newer kernel version and give their feedback on it before I include it in new ROM versions. This also allows me to just update kernels without having to update the entire ROM, when there is no ROM changes from one version to the next. I will include them as attachments.
Any and all donations are appreciated! All donations will go towards purchasing of new nexus devices to continue SaberMod development.
Donators: I will not be putting amounts donated unless requested by the donator. All donations are appreciated regardless of amounts. Everyone has different incomes and this seems like the most respectable thing for everyone
Added theme engine support. Ported from cm-10.1 by me. You can now use cm10/aokp theme apps.
12/23/12Kernel Changes (Attached to first post)
ARM tegra3 dvfs: Because we're not using mpdecision hotplug management anymore, voltages need to be raised slighty. This fixes some lagging issues with app scrolling and random lockups that occur when we run out of memory. Android low memory killer needs to pull in a few more voltages.
full_tilapia-ota-sparksco-1356352113-1224
Rom Changes
CyanogenMod changes
Gallery2 (AOSP): Hide from showing in launcher to avoid duplicate galleries showing. AOSP gallery is still accessible for certain task such as video and picture editing.
QuickSettings: open ACTION_DATA_ROAMING_SETTINGS onClick for the RSSI tile. Bring up mobile network settings, insted of data usage summary
QuickSettings: move location tile from temporary state
QuickSettings: add switch on/off action to onClick for WiFi and BlueTooth Tiles
QuickSettings: add switch on/off action to onClick for Location tile
CyanogenMod changes
Framework: Fix GSM signal strength
wifi: Allow Settings to retrieve country code: This makes getCountryCode behave like getFrequencyBand. This allows Settings to get/set country code like it can for frequency band.
SoundSettings: Show DSPManager. DSPManager can now be accessed through the sound settings.
My own additions
DeskClock: Ported Add option to hide AlarmClock Icon in StatusBar from a older version of CyanogenMod (4.1.2 based). This option is in alarm clock settings.
Updated Android Terminal Emulator app to latest Play Store version.
New bootanimation thanks to Wrixituz. The original thread is HERE
Updated java to latest Oracle Sun java release u38
QuickSettings: add switch on/off action to onClick for rssiTile.
QuickSettings: Don't collapse quicksettings bluetooth and wifi after change state
QuickSettings: add rebootTile
CyanogenMod changes
Add config_speed_up_audio_on_mt_calls option
Increase lock screen widget limit from 5 to 9
My own additions
Fixed bugs with USB otg storage unmounting not working properly. Fixed permissions for usbdisk to be the same as /sdcard, read/writing permssions. usbdisk should unmount cleanly the first time you press the button now. usb location is /storage/usbdisk
Add support for variable size pattern lockscreen (ported)
NavigationBar Customization (ported)
My own additions
NavigationBar: Custom height (ported from very old cm ROM android 4.1.2 based and it was a abandoned patch that I brought back!)
Kernel Changes (Attached to first post)
Voltage levels are back to stock android kernel
BFQ scheduler is now the default I/O scheduler
full_tilapia-Saber-Mod-1357148908-0102
My own additions
Implement Saber Mods: Much of the ported features that have been ported from CyanogenMod (about half), were implement/ported by me and not rascarlo. Because of this I don't feel it represents what rascarlo himself has in mind for features of his ROM builds. But just for the record big thanks to rascarlo for the following features ported from CyanogenMod that will now be in saber mods:
Status Bar/Clock - Show Clock, AM/PM style, Battery status style
Lockscreen shortcuts
Removed unneeded patches from the device source tree (Might have been causing some issues)
Kernel Changes
Removed unneeded patches (Might have been causing some issues)
full_tilapia-Saber-Mod-1357250101-0103
My own additions
Add new arm and neon compiler flags
Kernel Changes
Fixed a kernel regression: Use new compiler flags for arm and neon and remove cortex-a9 flags
which might be breaking some things
Highlight the clear button in the recents view when clicked
extend PreferenceActivity for title text on a single pane mode
SystemUI: show date on 2 lines in status bar
Webkit changes
Monitor device storage directly in /data/data
installd: Delete cache properly for devices using datadata partition
frameworks/base: Fix to avoid crash when the tab is not set from app
Wi-Fi: Pass default country code to driver
Dispatch keys to a device specific key handler (docking keyboard support)
DeviceKeyHandle: The device should consume only known keys (docking keyboard related)
Port "Option to hide Adb notification icon (2/2)" (find this option under development settings ;))
Various bug fixes
Asus battery dock support (untested, use at your own risk!)
Improve scrolling cache
SystemUI: highlight quick settings and notification clear buttons
Prevent audio players starting on startup.
Lockscreen Targets : Make multi-user compatible
Navbar : Fix left over glow
systemui: modify hdpi & xhdpi drawables for battery_min
CyanogenMod DeskClock changes
Make analog clock available as a lockscreen widget.
Added flip and shake to snooze
CyanogenMod Settings changes
Added fastsroll to the manage application screen so you don't need to scroll so much if you have alot of apps and want to go to the bottom of the list.
Settings: Added cpu info and memory info to About Phone Settings
Virtually everything since I merged their repo into mine.
My own additions
Fix typos in DeskClock new feature from CM: Display "nexus" under alarm settings instead of "phone" and/or "device". This is related to the new flip and shake alarm clock actions.
System Core: init: Allow for arbitrary long /proc/cpuinfo output
System Core: libsuspend: check for NULL autosuspend operations beforehand
System Core: rootdir: init.rc: Fix for "add_tid_to_cgroup failed to write" warnings
System Core: Fixed improper size displaying in 'df' utility
Updated new ROM flags for C and CPP. These flags optimize the builds more. Updated with stable flags that do not break any functionality.
Added linaro's new GCC 4.8 daily toolchain for arm-eabi. Only certain parts of the ROM use this. Adds extra optimizations to the builds. Expect frequent updates with new toolchain updates.
Updated all linaro patches to fix building with GCC 4.8 toolchains
Updated ROM builds to use java 1.7 instead of 1.6. Patches for these I pulled from CyanogenMod's github
Merged latest busybox patches from mainline
volume rocker music control (ported from CyanogenMod). Can be found in SaberMod settings
Volume key cursor control (Ported from CyanogenMod) Can be found in SaberMod settings
Fixed app compatibility in bionic with games such as plague
Updated prebuilt apps such as SuperSU and android terminal emulator to latest versions
Fix bug with stuck on boot when android is upgrading "starting apps message". Changing kernel compression from lzma to gzip fixed this.
Kernel is now built with linaro's daily toolchains 4.8 so expect frequent kernel updates as the toolchains are updated.
Updated kernel flags for C to optimize the kernel further. Fixed compiling with linaro toolchains.
Merged with latest 3.2.y linux patches. Bump to V3.8 respectively.
Put default clock frequencies back to stock, 102MHZ min and 1.3GHZ max.
Disabled BFQ I/O scheduler. With the latest 3.2.y changes it's not as compatible as before and is throwing out a lot of warning during compilation time. The new default is CFQ. Change to your liking if you so wish to.
Still working on a fix for variable lockscreen pattern size
Fixed QuickSettings tiles for WiFi and Bluetooth
Latest nightly toolchains as always
Merged CyanogenMod busybox and mainline busybox
Framework: Make Safe headset volume user configurable (Ported from CyanogenMod)
LockscreenTargets : Dismiss on target select
Various clang fixes to allow adding graphite optimizations during compilation without the builds failing. Some of these have been submitted by me and merged into Linaro gerrit code review.
Added graphite flags for CC and CPP programming languages optimizations
Built latest toolchains from GNU source and enabled graphite functionality. This allows graphite optimizations to be used during compilation.
Added even more optimization flags, but none that increase code size to a unsafe level that will cause more battery drain and memory usage.
Disabled zram from running by default. Was causing lag and battery drain.
Bring variable lockscreen pattern size back now that it's fixed.
Removed spare parts system app, it's old and broken.
Merged latest mainline busybox changes from master branch
Fixed cifs, credits for patches from CyanogenMod
Updated latest binaries for 4.2.2
Merged the rest of AOSP 4.2.2 changes now that the full source is out :)
Fixed screen not waking properly with taping power button
More bionic optimization patches ported from CyanogenMod's github
Anything else I'm forgetting will add later
Kernel Changes
Merged with latest 3.2.y linux patches. Bump to V3.8 respectively.
Put default clock frequencies back to stock, 102MHZ min and 1.3GHZ max.
Disabled BFQ I/O scheduler. With the latest 3.2.y changes it's not as compatible as before and is throwing out a lot of warning during compilation time. The new default is CFQ. Change to your liking if you so wish to.
Kernel is now built with SaberMod's very own arm-eabi GCC 4.8 toolchain! :)
Built with toolchain revision 195953. GNU updates their GCC source daily, sometime even hourly! Of course I don't have time to rebuild toolchains on a hourly basis that would be absurd lol! But I will try to update it once every day or two days if I have time. New kernel versions will either be posted seperately on the first post and/or in new ROM versions. New ROM builds only need to be updated with ROM changes, not for only kernel. So if you want the latest and greatest kernel version, check regularly ;)
Toolchain source is here and does not require any special kernel patches to build the kernel with it :)
Initial merges for android 4.4.2. This is the first beta so expect bugs, although I haven't found any yet.
Rom uses stock kernel until AOSP updates the relevant hardware to match the kernel drivers.
Merged with latest AOSP kernel source for 4.2.2. Bumped major version to 4.8
Bumped new daily arm-eabi SaberMod toolchain. Built with toolchain revision 195953 (Newer GNU GCC source)
Default kernel settings for governor and I/O scheduler to match stock kernel. Userspace for governor and CFQ for I/O scheduler
Merged with latest linux-3.2.y branch patches. Bumped minor version to 4.9
Right on let me know how it runs, so far pre-beta testing I've had nothing but good news. Also if someone could possibly post up some screenshots at some point (as many as possible), that would be really helpful as I have no idea how this ROM looks lol.
HTC G1: Bricked
HTC G1 #2: Broke
HTC Evo Shift 4G: Active
ASUS Nexus 7: Active
I checked and tethering probably won't work unless someone provides the source on how to do it. Prebuilt flashable framework apps won't work as this ROM has a custom framework. I need pure source code for this.
Sent from my Nexus 7 using Tapatalk 2
HTC G1: Bricked
HTC G1 #2: Broke
HTC Evo Shift 4G: Active
ASUS Nexus 7: Active
Those of us who use Linux on a day to day basis don’t think twice about sinking … more
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?