[Galaxy S 4 i9505 Android Development] robcore:
Reserved

UPDATES NOTICE:

Reset your fuelguage (in Synapse) after every install! WIping your cache and dalvik-cache can be helpful for stubborn apps, as well as wiping the cache of any specific app giving you trouble!

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

UPDATES - MarkOneHundred - October 31, 2017

CHANGELOG:

- Updated memory management to roughly linux 4.4.

- Modified Cpufreq in various ways. Per-Cpu frequency touchboost, per-cpu thermal core tracking and limiting, and governors can now be changed if a cpu core is offline. The governor selected will be applied to the core once it comes back online.

- Implemented Omniboost, a generic touchboost interface that can be used for any driver, so long as driver has an external function that the booster can use.

- Built a new hotplug driver from scratch, mx_hotplug. The driver chooses to on/offline cores based on a combination of system load and current number of scheduler requests (and touch of course). What separates this hotplug driver from others is that it uses a real-time kthread in order to give it an "interactive" type calculation.

- Speaking of which, found and fixed the issues with google's most recent interactive governor, and have added it back. Due to it working perfectly now, I forward-ported Intelliactive as well.

- Updated Hardplug to be more efficient.

- Built a little userspace hotplug driver from scratch for those who just need manual core adjustments.

- Tons of other little fixes and updates, to the kernel itself and to Synapse. Please explore around Synapse for some of the updated features.

- Found and fixed any of the user reported bugs i could.

- Continued with the various core updates to 4.14.

- Updated to my own toolchain, 7.1.1 hardfloat, cortex-A15 optimized (it is similiar enough to krait to give us an edge).

- I will update this if i think of anything else.

Sticky: Kernel base is now pretty much somewhere between 3.16-3.18, however I will keep the versioning at 3.4 for certain functions that depend on kernel_version conditionals. Wifi hotspot disconnect issue still persists, but i'd like to think that one day it will be solved...

Can be found in MachineX Rom by the awesome @Andycar found here: https://xdaforums.com/galaxy-s4/i9505-develop/rom-machinex-debloated-nogapps-s6-apps-t3573009

See my poorly formatted wiki for older updates:

https://github.com/robcore/machinex/wiki

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

LOGS

In Synapse, under 'LOGS AND PROFILES,' you will find a button that says ALL LOGS. Please press this button IMMEDIATELY after a bug appears that you would like to report, or after a boot if you get a kernel panic (RR).

From now on, without these logs present, I am no longer able to respond to the issues brought up by users.

FIXES

The following fixes involve sqlite and the "Setting Storage" application, also known as Settings Provider, or "com.android.providers.settings package" You will be working with a file named settings.db, and the 'system' table within.

Synapse Cancelled Fix: Get rid of the init.d scripts that are conflicting with UCI service startup. Also check the SuperSU section below...

Sound Fix: Either don't use an audio mod, or don't use Faux Sound Engine. That's all she wrote.

ScreenFlickerFix: Using an SQLITE DB Editor of your choice (from playstore), navigate to the "system" table and change values for "dim_screen" and "intelligent_screen_mode" to 0. *UPDATE* NOW AVAILABLE IN SYNAPSE UNDER THE "EXTRAS TAB"

ChargingTweak: Same as above but change "adaptive_fast_charging" to 0. This is only IF you are having issues which kernel driver-level fast charge. *UPDATE* NOW AVAILABLE IN SYNAPSE UNDER THE "EXTRAS TAB"

MASSIVE THANKYOU to @Andycar for making the above two fixes possible via Synapse!

SuperSU: I'm seeing a lot of permisison errors. Make sure, when using custom roms and kernels, that SuperSU is set to be as permissive as possible so you don't get knox blocked. Here are the crucial settings:

- ENABLE SU during boot

- DISABLE (untick) Mount namespaces separation

- Install SuperSU into /system

- ENABLE Trust System User

- Though I know many have security issues with the idea of allowing apps by default, doing so will make your experience way faster and provide you with less interuptions. At the very least I would set allow by default for Synapse.

These SU settings are kinda par for the course when it comes to android modding.

build.prop: Here is a list of property removals/changes recommended for our device:

REMOVE(lines containing):

ANYTHING with "fps/FPS" in it.

persist.sys.NV_FPSLIMIT

persist.sys.NV_POWERMODE

persist.sys.NV_PROFVER

persist.sys.NV_STEREOCTR

persist.sys.NV_STEREOSEPCHG

persist.sys.NV_STEREOSEP

persist.af.resampler.quality

af.resample

persist.af.resample

ro.telephony.default_network

telephony.lteOnCdmaDevice

dalvik.vm.dexopt-flags

ro.media.enc.jpeg.quality

ro.media.enc.hprof.vid.fps

ro.ril.power_collapse

ro.ril.sensor.sleep.control

pm.sleep_mode

power.saving.mode

persist.cust.tel.eons

persist.sys.dalvik.hyperthreading

boot.fps

shutdown.fps

debug.egl.profiler

hw2d.force

hw3d.force

video.accelerate.hw

debug.mdpcomp.maxlayer

debug.egl.buffercount

debug.enabletr

ro.hwui.renderer.disable_opaque

persist.sys.media.use-awesome (this is default anyway, and is controlled via the nuplayer checkbox in developer settings, so it's unneccesary)

CHANGE:

persist.sys.storage_preload=0 to persist.sys.storage_preload=1

tunnel.decode=false to tunnel.decode=true

af.resampler.quality=4 (or anything else) to af.resampler.quality=255

ro.config.dha_ils_enable=false to ro.config.dha_ils_enable=true

#ro.config.dha_cached_max=4 (remove the #)

#ro.config.dha_empty_max=36 (remove the #)

#ro.config.dha_lmk_scale=0.594 (remove the #)

sys.config.samp_spcm_enable=false to sys.config.samp_spcm_enable=true

sys.config.spcm_preload_enable=false to sys.config.spcm_preload_enable=true

ro.security.mdpp.ux=Disabled to ro.security.mdpp.ux=Enabled

For those having gaming issues, try removing them if you have them or adding them if you don't:

debug.performance.tuning=1

persist.sys.ui.hw=1

This might solve some issues for some folks.

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

INSTALLATION NOTE: Your first boot will probably take longer than usual, because this kernel makes significant (but safe, and auto-backed-up) changes to your core operating system.

This kernel includes drivers that TW has been compatible with since JB (I checked),

but didn't update the kernel drivers for (the best example of this is Autosleep). That said, there are userspace controllers like thermald and mpdecision (a binary linked to kernel code)

that interfere with custom governors, hotplug drivers, etc, so I've made the decision to back them up in the kernel script, and have them disabled while using this kernel.

The UNINSTALLER restores everything to the state it was in before flashing machinex, which is why I so strongly emphasize its use.