• If you are experiencing issues logging in, we moved to a new and more secure software and older account passwords were not able to be migrated. We recommend trying to reset your password, then contacting us if there are issues.
  • Nearly done! Migration cleanup is mostly done. There are a small number of issues left that we continue to work on, but all the heavy lifting is done. We still would love to hear feedback over at this thread and also check out the new XDA app! Thanks and we hope you enjoy the new forums, and thanks for your support of XDA <3

[ROM][5.1.1_r34][OPTIMIZED/LINARO] OmniROM [10.03.2016]

ChronoMonochrome

Elite Member
Jan 29, 2014
2,276
4,896
113
Stavropol

OmniROM 5.1.1 for the Samsung Galaxy Ace 2 ( GT-I8160 )

-------------------------------------------------------------------------------------------------------------------------------------



This build is based upon the sources provided by Omnirom Team, Team Canjica and nieltg, and has been improved by additional fixes. It's in beta stage, so don't expect some things to be working.

Features:
  • RIL (phone/SMS/3G)
  • Video (playback & recording)
  • Audio (playback & recording)
  • Wi-fi
  • Bluetooth
  • Camera (Front and rear)
  • 2D/3D HW Acceleration
  • USB, MTP, ADB
  • all native tethers (Wifi/BT/USB)
  • external storage

What doesn't work yet
  • video recording

Please note that since build 29.09.15 F2FS and another features of the chrono kernel installer no longer supproted by a ROM one.
To enable them you need to install a standalone version of chrono kernel.

Just install kernel linked below. Note that only R4.2.4 and higher supports OmniROM.


Download

OmniROM

PA GAPPS

PA GAPPS - Pico or nano package is recommended

Rooting

Since Omni ROM doesn't itself include root, you should install it manually.

Installation
Attention! Builds #20 and #21 (08.03.2016) requires data wipe because of SQLite update. Please back up and wipe data if you are coming from older builds to the one of these ones or higher.

Before installation, make sure that you have enough free space on partition /system. AT LEAST 515 Mb is required for build #22 if installing WITHOUT any Gapps. If you don't enough space, follow repartition manual. (at your own responsibility for any kind of possible damage. Be sure to measure twice and cut once!).
  • install ROM first
  • install gapps
  • install root
  • install chrono kernel (r4.2.4 or up, latest is recommended)

Experiencing problems with apps optimization on every device boot?
Add these lines to the file system/build.prop
Code:
# Art tweaks
dalvik.vm.image-dex2oat-filter=speed
dalvik.vm.dex2oat-filter=interpret-only
before installing this ROM.

Sources:

Device tree: https://github.com/ChronoMonochrome/android_device_samsung_codina
Kernel: Chrono Kernel
Vendor: https://github.com/ChronoMonochrome/android_vendor_samsung_u8500-common

Credits:

@Meticulus - thanks for the support on the initial lollipop bring-up!
@NovaFusion - OMX source patches
@TeamCanjica - vendor sources
@Unjustified Dev - Audio fixes
@golden-guy - great cherry-picks
@nieltg - Sources for Galaxy Ace 2 device
@AntaresOne - contribution on sources for Galaxy Ace 2 device
@[email protected] - sources and support
Sergeyl (user from 4pda) - sources and support
PolishVodka - AROMA installer with codina/codinap support
amarullz
Omni ROM team

HUGE thanks to you and @ everybody who has contributed to your sources! :highfive:

XDA:DevDB Information
[ROM][5.1.1] OmniROM, ROM for the Samsung Galaxy Ace II

Contributors
ChronoMonochrome
ROM OS Version: 5.1.x Lollipop
ROM Kernel: Linux 3.0.x
ROM Firmware Required: 4.1.2+ && custom recovery
Based On: Omni ROM

Version Information
Status: Stable
Stable Release Date: 2016-03-10

Created 2015-05-13
Last Updated 2016-03-13
 

ChronoMonochrome

Elite Member
Jan 29, 2014
2,276
4,896
113
Stavropol
Changelogs

Changlelog:

Build #22 - 10.03.2016
  • Switched Apollo to Eleven from CM12.1
  • Added Viper4Android FX, CMFilemanager and Terminal apps
  • Added feature long volume key press to skip track (thanks to mickybart)
  • Switched Torch to sysfs interface (disabled delay on torch activation)
  • Added new fix to low incall volume (thanks to golden-guy)
  • Fixed screen locking issue during active call (based on initial patch by golden-guy)
  • RIL update from SergeyL (possible fix to 2G/3G switch issue)
  • Allowed build time disabling of components (Gapps battery drain fix)
  • Frequently used OpenGL ES methods whitelisted for fast JNI path (possible improvement to OpenGL apps)
  • Various stability fixes and improvements (thanks to SergeyL for bringing my attention to them)
  • Memory management build.prop tweaks (thanks to SergeyL)

Build #21 - 08.03.2016
  • Switched to GCC 5.2 for the whole ROM now
  • Applied -ffast-math on whole ROM
  • Optimizations cleanup
  • Added SQLite 3 from CyanogenMod 12.1


Build #20 - 07.03.2016
  • Extended media support via FFMPEG (most audio and video files now can be played via HW codecs in MX player)
  • Videorecording patch cleanup

Build #19 - 03.03.2016
  • Switched back to Linaro GCC 5.2, with a few exceptions that are still built with GCC 4.9 (to avoid possible issues caused by higher GCC version)
  • Applied -ffast-math to almost multimedia and some GUI modules (in a cases with a heavy math calculations it can give up to 3x performance speedup)
  • Applied unsafe loop optimizations to the whole ROM (gives about 10-15% overall speedup)

Build #18 - 28.02.2016
  • fixed WiFi tethering bug
  • fixed linker spam

Build #17 - 26.02.2016
  • Switched to Linaro GCC 4.9.4 for now (better handling of LTO optimization code generation)
  • Odexed build
  • Fixed MTP bug
  • Fixed Wifi / USB tethering issue (again!)
  • Missing APNs should be fixed now
  • HWComposer: switched to SW vsync implementation from tuna


Build #16 - 21.02.2016
  • enabled ARM mode on almost binaries (better performance in compare with thumb)
  • added properly applied strict-aliasing optimizations
  • rest small changes in optimizations (disabled cortex-a8 workaround that was enabled for all the rest processors as well; disabled debug symbols hardcoded for some blobs)
  • fixed broken since latest build logcat
  • added some useful for debugging binaries such as strace
  • deleted blob at_distributor (seems that RIL works fine without this)
  • re-added forgotten low incall volume fix

Build #15 - 19.02.2016
  • a heavily optimized build - enabled Link Time Optimizations(LTO), Graphite and Floop Nest optimizations
  • fixed camera crash on stop of video recording in default Omni camera app
  • fixed strict aliasing violations in many of places
  • skia: neon optimizations patchset, another improvements
  • sqlite: updated to 3.8.10.2 version
  • launcher: improved scrolling smoothness
  • replaced libexpat and libpower samsung blobs with the open-source ones (much more is coming, hopefully)
  • a lots of other changes that improves stablitiy / performance

Build #14 - 17.02.2016
  • added @arter97 optimizations
  • changed -O3 -> -O2 optimizations level
  • added -ffast-math optimizations to some UI modules (original patches by OptiPop Team, modified by me)
  • compiled with Linaro GCC 5.2.1 (thanks to OptiPop ROM team, arter97, temasek and other devs for a lot of fixes for GCC 5+)
  • compiled HWcomposer and copybit from source
  • fixed low 2D graphics performance by using gralloc from stock
  • kernel: updated to r4.2.8
  • AV and Native frameworks: fully updated to CM12.1 5.1.1_r34
  • applied various fixes

Build #13 - 12.02.2016
  • fixed wifi/usb tethering broken
  • fixed default min/max CPUfreq (again)
  • added low incall volume fix (thanks @SergeyL for pointing out on fix)
  • attempt to fix memory compation issue which leads to reboot
  • reduced an unnecessary display wakeup delay
  • MCDE video modes reset to stock (should actually fix ws2401 glitch on the bottom side of a screen)

Build #12 - 09.02.2016
  • Forward-port videorecording fix to android 5.1.1 (thanks to golden-guy!)
  • CM'ify the build (almost the sources are reset to CyanogenMod 12.1, with 5.1.1_r33 as a base)
  • Re-applied all previous fixes from scratch (thanks to SergeyL for the patches from his CM12.1)


Build #11 - 13.10.2015
  • updated sources
  • apps graphics optimization with pngquant (lesser memory foorprint)
  • disable autostart of some apps
  • applied patches from Nexus Security Bulletin (september 2015)

Build #10 - 02.10.2015
  • scrolling cache optimization
  • various optimizatoins from Xperia STE team
  • fix changing networkType when data connection is online by golden-guy
  • ril fixes by Meticulus
  • attempt to fix NFC feature on codinap
  • attempt to fix a missing APN

Build #9 - 30.09.2015
  • improved compatibility with the RRO (Layers)
  • decreased various delays (of a changing of a window orientation, long press etc),
    according to my subjective feelings, the scrolling works more smooth now.
  • improved native implementation of math with a floating point
  • disabled an unnecessary debug

Build #8 - 29.09.2015
  • Updated to the latest OmniROM's sources
  • Kernel: updated to r3.7
  • Added Omni Torch
  • Enabled ZRAM by default

Build #7 - 02.09.2015
  • Updated to the latest 5.1.1_r12 OmniROM's sources
  • Probably fixed problems with ROM booting due to genfstab issues
  • Attempt to fix NFC issue on codinap (need test)
  • Removed "low space on internal storage" status-bar notification
  • Updated kernel to R3.4
  • Removed volume long press skip tracks port (this port broke volume regulation in suspend; use in-kernel feature instead)

Build #6 - 06.08.2015
  • Updated sources
  • Fix for recent libstagefright vulnerabiliies
  • Various build.prop tweaks
  • Universal (codina/codinap) AROMA installer
  • Added one-click data on/off to mobile data tile [golden-guy]
  • Ported volume long press skip tracks from CM12.1
Build #5 - 16.07.2015
  • update to 5.1.1_r5
  • fix to libFFTEm.so (fixes sending images via whatsapp)
  • fix to gapps/GPS FC
Build #4 - 26.05.2015
  • apps are dex preoptimzed - boot time should be decreased
  • probably solved bug with gapps optimization after each boot - need confirmation to that
Build #3 - 25.05.2015
  • updated sources
  • refreshed/reworked some patches
  • included fix to low audio volume
  • removed fix for gapps
  • fixed slow EGL/runtime performance
  • kernel updated to R2.24.7
Build #2 - 14.05.2015
  • fixed "leftover" bugs: audio recording, lpm charging, performance control issue and GPS. GPS might be buggy and barely works without connection to wifi. Thanks to PolishVodka for help in fixing offline charger.
  • reimplemented F2FS support
  • HZ changed to 500 - now should be even more UI fluidity.
  • eliminated screen tearings with default lcdclk freq on ws2401 display - thanks to ace2nutzer.
  • Small fixes - now long home press is set to open recent apps switcher, and enabled home wake by default.

Build #1 - 13.05.2015
  • initial release
 
Last edited:

ChronoMonochrome

Elite Member
Jan 29, 2014
2,276
4,896
113
Stavropol
Misc

Temporary audio fix

For reference only - this is no longer needed since build #3.

http://forum.xda-developers.com/showpost.php?p=60784744&postcount=55


Storage swap

For swapping storage edit /ramdisk/fstab manually - change numbers of sdcards or just copy/paste following:
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
# Data partition must be located at the bottom for supporting device encryption

#<src> <mnt_point> <type> <mnt_flags and options>
/dev/block/mmcblk0p3 /system ext4 ro,noatime,errors=panic wait
/dev/block/mmcblk0p2 /modemfs ext4 noatime,nosuid,nodev,errors=panic wait,check
/dev/block/mmcblk0p4 /cache ext4 noatime,nosuid,nodev,errors=panic wait,check
/dev/block/mmcblk0p7 /efs ext4 noatime,nosuid,nodev,errors=panic wait,check
/dev/block/mmcblk0p9 /preload ext4 ro,noatime,errors=panic wait
/dev/block/mmcblk0p5 /data ext4 noatime,nosuid,nodev,discard,noauto_da_alloc,errors=panic wait,check,encryptable=/efs/metadata

# Vold managed volumes
/devices/sdi2/mmc_host/mmc0/mmc0 auto auto defaults voldmanaged=sdcard1:8,nonremovable,noemulatedsd
/devices/sdi0/mmc_host/mmc1/mmc1 auto auto defaults voldmanaged=sdcard0:auto

# Recovery
/dev/block/mmcblk0p15 /boot emmc defaults
 
Last edited:

str3tch72

Elite Member
Nov 25, 2012
2,541
786
113
Lubartów
Performance settings working when I applied root. :)

---------- Post added at 12:26 AM ---------- Previous post was at 12:24 AM ----------

My bad, is always "interactive".
 

ChronoMonochrome

Elite Member
Jan 29, 2014
2,276
4,896
113
Stavropol
Performance settings working when I applied root. :)

---------- Post added at 12:26 AM ---------- Previous post was at 12:24 AM ----------

My bad, is always "interactive".
That actually stupid mistake somewhere in ramdisk - needed permissions are not set for sysfs interface of governor. Following init.d script can be used as temporary fix:
Code:
#!/system/bin/sh

chmod 666 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
UPD. I realized that on this build was messed not only audio recording, but probably it was impossible to make voice call whenever (usual calls, skype etc). I've also added temp. fix to this http://forum.xda-developers.com/showpost.php?p=60720596&postcount=2 . I haven't tested it yet, cause I don't make calls often, but audio recording is working.
 
Last edited:

PolishVodka

Elite Member
Oct 4, 2012
1,137
2,810
0
@ChronoMonochrome you're doing so many for this little device, great. For LPM add this to BoardConfig like gg:
https://github.com/golden-guy/andro...mmit/912ce90471772e19418f5ee1dfa0c84d15a429a5

and you have two ways now, you can use lpmkey + playlpm services from stock JB (and libQmageDecoder.so + battery images from JB).
Remove from /rootdir lpm.rc because is useless now, but add somewhere in /root lpmkey and playlpm (0775) because somehow from system partition cannot be executed, and to init.u8500.rc type something like this:

on charger
write /sys/class/power_supply/battery/batt_lp_charging 1
# Set CPUs speed & governor in LPM, disable one core
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor conservative
write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor conservative
write /sys/block/mmcblk0/queue/scheduler noop
write /sys/block/mmcblk1/queue/scheduler noop
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 600000
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 200000
write /sys/devices/system/cpu/cpu1/online 0
# Enable DT2W feature
write /sys/module/doubletap2wake/parameters/enable 1
mount ext4 /dev/block/mmcblk0p3 /system wait ro

service playlpm /charger/playlpm
class charger
user root

service lpmkey /charger/lpmkey
class charger
user root

Or use charger binary from CM11 + battery images (res/images to /rootdir) and type:


on charger
write /sys/class/power_supply/battery/batt_lp_charging 1
# Something here if you want

service charger /sbin/charger
class charger
critical
 
Last edited:

str3tch72

Elite Member
Nov 25, 2012
2,541
786
113
Lubartów
Mic with calls working good. And yes, this ROM is smoothest ROM I've ever seen. Without hard-tweaked interactive and even on 800mhz, this phone is like a rocket. You're doing really good job for our community, thanks again. :)
 
  • Like
Reactions: ChronoMonochrome

ChronoMonochrome

Elite Member
Jan 29, 2014
2,276
4,896
113
Stavropol
Or use charger binary from CM11 + battery images (res/images to /rootdir) and type:


on charger
write /sys/class/power_supply/battery/batt_lp_charging 1
# Something here if you want

service charger /sbin/charger
class charger
critical
Thanks. I already tried to use charger from CM11, but I've missed this and commit for BoardConfig.mk above. I'll try it later.
 
Last edited:

str3tch72

Elite Member
Nov 25, 2012
2,541
786
113
Lubartów
One question for you: is it difficult to port or cherry-pick some bugfixes from CM12.1? I'm not hurry, because I'm not using offline charging and location so much. :D
 

ChronoMonochrome

Elite Member
Jan 29, 2014
2,276
4,896
113
Stavropol
One question for you: is it difficult to port or cherry-pick some bugfixes from CM12.1? I'm not hurry, because I'm not using offline charging and location so much. :D
As turned out - not very difficult(although first I stuck with some commits that didn't apply cleanly). It's a bit more difficult to find what changes are missing in our repos to make GPS working.
 

xo.en

Senior Member
Jul 5, 2014
726
176
43
Spalding, England
What doesn't work yet
audio and video recording
GPS
Photoshooting works?
Btw, lack of gps is really devastating..;/ Cannot this be fixed with SIMPLE libs copy/paste from cm12.x?

btw, which kernel does it have? last ones were..rather...uninteresting, imho..you know...
 
Last edited: