sched_features - Google Pixel 3 XL Guides, News, & Discussion

ive been lurking around in the pixel and i came across sched_features
it seems that there are alot of experimental features enabled by default
i have disabled almost all sched_features (by echo NO_ infront of all features enabled in /sys/kernel/debug/sched_feature) i have left the EAS alone)
i find the phone performs so much better now, can someone explain what these features do exactly? i tried googling but everything was so vague.
there is a push_ipi feature enabled - which is only recommended to be enabled on a machine with 16+ CPU's (per lwn recommendation)
if we can get feedback about what these sched features do - and even test disabling them and their affects on performance maybe we can get a tweak thread going.

try creating a file and run this as a script:
strings=(
NO_GENTLE_FAIR_SLEEPERS
START_DEBIT
NO_NEXT_BUDDY
LAST_BUDDY
CACHE_HOT_BUDDY
WAKEUP_PREEMPTION
NO_HRTICK
NO_DOUBLE_TICK
NO_LB_BIAS
NO_NONTASK_CAPACITY
NO_TTWU_QUEUE
NO_SIS_AVG_CPU
NO_RT_PUSH_IPI
NO_FORCE_SD_OVERLAP
NO_RT_RUNTIME_SHARE
NO_LB_MIN
ATTACH_AGE_LOAD
ENERGY_AWARE
NO_MIN_CAPACITY_CAPPING
NO_FBT_STRICT_ORDER
NO_EAS_USE_NEED_IDLE
)
for i in "${strings[@]}"; do
echo $i > /sys/kernel/debug/sched_features
done
please report back findings

Related

[OUTDATED AND REMOVED BY KIFNO] Kifno's Scripts v2.x.x Series

Kifno's HeroC Universal Scripts v2.0.1
PLEASE READ THE ENTIRE FIRST POST BEFORE POSTING
THE CREDITING/PERMISSION ISSUE IS DONE AND OVER WITH EVER SINCE THE V1.x THREAD SO PLEASE NO MORE POST ABOUT THAT, OR YOU WILL BE REPORTED TO A MOD! ALSO I DID NOT JUST COMPILE A BUNCH OF MODS TOGETHER! IF YOU READ THE CREDITS YOU'LL SEE I ASKED TO USE THEIR IDEAS AND I IMPROVED THEM AND INCLUDED THEM ALONGSIDE MY WORK! SO PLEASE NO POST ABOUT I HAVEN'T DONE ANYTHING BECAUSE IT IS OFFENSIVE TO ME WHEN I KNOW I HAVE DONE EVERYTHING IN THIS SCRIPT FOR OUR HEROES, FROM MY CUSTOM VALUES TO THE IMPROVEMENTS OF OTHERS IDEAS OF WHICH I HAVE CREDITED AND GOT PERMISSION FROM AND SUBMITTED MY IMPROVED VERSION TO.
Thanks
- Kifno​
What did I do?
- Read change log
My Explanation for the tweaks/scripts
Code:
Yes these are the tweaks I apply. They are what I think are the best
values for the file(s). Now I'll go into detail as to what each file is and why I set
a new value for it. If you don't like my opinion as to why my new value is
better please explain in a positive manner why you think so or just well...
then, no offense but just keep it to yourself. If you can't say anything
that is constructive POSITIVE critism without using language that could lead to
an argument/provakative language then please don't post here. Now on to the
explanations.
[B]Kernel Tweaks:[/B]
This specifies a period of time that the kernel gives a process that is holding a
file lease. After it has sent a signal to that process notifying, it that another
process is waiting to pen the file. In simpler terms this means that the kernel
has given the process a set amount of time it can hold a file after another
process has notifying it that it wants the file. The deafult had the time higher. I
set it lower. Although it doesn't make much of a difference, ever millionth of a
second counts :D
[CODE]/proc/sys/fs/lease-break-time
This enables cfq compatibility with older kernel models. This results in better
performance, for example more smoothness in apps and the launcher
Code:
/proc/sys/kernel/sched_compat_yield
This value has to correspond with the file-max value so this is raised according
to the value of the file-max. Why did I raise the file-max? Keep reading silly
Code:
/proc/sys/kernel/ngroup_max
Disables some annoying cfs scheduler feature (which is why I don't use the cfs
scheduler in my tweak, I use the noop scheduler) whic increase the UI's
performace just a bit.
Code:
/proc/sys/kernel/sched_features
Sets the maximum number of file-handles that the android kernel will put aside
for other use, share, or put in memory for other use. Usually increasing this
value is a good thing compared to the default value. Which in our case, it was.
If our kernels had an inode file we'd want the value of that to be 2-3 times as
much as the file max. Its a good tweaking rule I thought I'd let you know just
in case you're on linux
Code:
/proc/sys/fs/file-max
This is the max percentage of active processes that can be filled with dirty
pages before the pdflush begins writing them This MAY OR MAY NOT be the
default value for most kernels, but just in case it isn't I set it anyway. Why?
Becuase I want to make sure that if the dirty pages is about 19MB - 40MB of
our RAM, that pdflush begins writing
Code:
/proc/sys/vm/dirty_background_ratio
How agressively memory is "swapped" between disk and swap space.
Code:
/proc/sys/vm/swappiness
Lowering this is a good thing if on a system with slow I/O speeds between the
disk. But if this is lowered too much the I/O will get "constapated" and just
slow the phone down.
Code:
/proc/sys/vm/dirty_expire_centisecs
Doesn't do much but messing with the pdflush's timing of things. Little improvement but everything adds up
Code:
/proc/sys/vm/dirty_writeback_centisecs
Management of the phone's processes by setting a max amount of memory the
phone allows for dirty pages before stopping the processes writing.
Code:
/proc/sys/vm/dirty_ratio
Sets kernel priority for getting/releasing inodes and dentry cache files.
Higher = getting inodes and dentry cache files back more quickly
Lower = releasing inodes and dentry cache files a bit more quickly
Code:
/proc/sys/vm/vfs_cache_pressure
Changes the govenor depending on screen state
Code:
$*GOV
Changed timeslice lenght for better performance when using the phone, and
bettery battery when you aren't using the phone (screen off).
Code:
/proc/sys/kernel/sched_latency_ns
/proc/sys/kernel/sched_min_granularity_ns
/proc/sys/kernel/sched_wakeup_granularity_ns
Cpu frequencies. Pretty simple to explain
Code:
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Amount of time before the interactive governor decides to change the cpu
speed.
Code:
/sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
This is how often the kernel changes the frequency.
Code:
/sys/devices/system/cpu/cpu0/cpufreq/conservative/sampling_rate
This is the max rate at which the kernel can change frequencies.
Code:
/sys/devices/system/cpu/cpu0/cpufreq/conservative/sampling_rate_max
Thi is teh min rate at which the kernel can change frequencies.
Code:
/sys/devices/system/cpu/cpu0/cpufreq/conservative/sampling_rate_min
Average CPU usage from kernel's sampling rates which help it determine
wheather or not it should increase the CPU frequency.
Code:
/sys/devices/system/cpu/cpu0/cpufreq/conservative/up_threshold
This is what I use to find the battery percentage for the battery percentage
profile.
Code:
$capacity
This is what I use to find the temperature for the temperature profile.
Code:
$temp
Determines if phone is sleep or awake for screen state profile
Code:
$sleeping/$awake
This is the amount of power that was given towards wifi. I just upped the
amount a bit BETTER WIFI WOOHOO
Code:
/sys/module/acpuclock_arm11/parameters/pwrc_khz
/sys/module/acpuclock_arm11/parameters/wfi_khz
I/O Scheduler Tweaks:
IMO the noop scheduler is better for our read and write speeds. Simple as that.
And what more than a better scheduler for read and write speeds to go along
with the sd card speed tweaks?
Code:
echo noop > /sys/block/*/queue/scheduler
Set so that the phone's process, ram, or any other request won't get out of
order. This improves the performance because it helps our internal drive and
extral drive (if using apps2sd or data2ext or data2sd). How think of it as
organizing the request a little bit better than the default value This is more
of a being safe thing in fact, but also a little extra performance didn't hurt
anyone did it?
Code:
/sys/block/mmcblk0/queue/nr_requests
Network Tweaks:
These change the DNS server to 0.0.0.0 which in fact helped my mobile data
speeds go up by about 50-100kbps This DNS server was better than
google's or opendns (but I've always had problems with opendns). Though
google's dns server came close to being the better of the three this DNS server
was the best after being tested many times
Code:
nameserver 0.0.0.0 /etc/resolv.conf
The following are the combination of strings and values that I played with in the
beginning days of this tweak so configure our network speeds. It took about 6
hours of testing to come up with the best combination for the heroc And like
I've asked and I've said about at least 20x when asked, exactly how is our
CDMA network affected by these values when they aren't even meant for it?
They just do, now shh and enjoy your better 3G speeds But seriously ask
someone in the networking field or someone who works for sprint but is into
rooting androids (so you won't get into trouble because of hacking their data
tower speeds they give out to our herocs ). I did and it has something to do
data towers, I can't explain exactly how because once I heard that I was so
excited I just stopped listening as well
Code:
ro.ril.hsxpa=2
ro.ril.gprsclass=8
ro.ril.hep=1
ro.ril.hsdpa.category=24
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=3
wifi.supplicant_scan_interval=20
How frequently the keepalive probes are sent out is determined by tcp_keepalive_intvl This is value is dependent upon tcp_keepalive_probes as well, which determines how many probes are sent out. This determines the time not to kill the connection. I lowered this value so connections will be killed faster.
Code:
tcp_keepalive_intvl
tcp_keepalive_probes
Time to hold sockets, which I lowered.
Code:
tcp_fin_timeout
Socket receive buffer. Increased to increase sockets received from network.
Code:
rmem_default
Socket send buffer. Increased to increase sockets sent to the network.
Code:
wmem_default
Maximum socket receive buffer. Increased to increase the total amount of sockets we can receive from the network.
Code:
rmem_max
Maximum socket send buffer. Increased to increase the total amount of sockets we can send to the network.
Code:
wmem_max
Memory Tweaks:
This is the tweak I used to configure our internal task killer. I had to experiment
with this a lot becaue certain values made music playback very choppy when
the screen was in sleep mode. But at last these are the values I came up with
to keep our free ram high while not interfering with everyday usage too much
Code:
echo "3072,6144,9216,21000,23000,25000" > /sys/module/lowmemorykiller/parameters/minfree
SD Card Tweaks:
This is the cache of the sd card. This was set to 128 so I bumped it up to 1024. Other values may be better for your phone and it's sd card but this is the
most compatible across the board. Still a performance increase but just not the
optimal value. Why? Because all heros are different as well as that plust the sd
card everyone is using
Code:
read_ahead_kb
[/CODE]
Requirements:
- Rooted HTC Hero CDMA
- Kernel w/ Interactive, Smartass, Conservative, Powersave, Ondemand, and Performace Governors (Grab deca kernel and compile from source if not using cyanogenmod based roms, or use sobe's kernel)
ATTENTION​
DO NOT, I REPEAT, DO NOT USE SETCPU/OVERCLOCKWIDGET/COLLIN_PH/DECA'S BATTERY TWEAK, OR ANY BATTERY TWEAKING/CPU OVERLOCKING UTILITIES/SCRIPTS WITH THIS MOD!!!!!! WARNING USE THIS MOD AT YOUR OWN RISK!!! I TAKE NO RESPONSIBILITY FOR WHAT HAPPENS TO YOUR PHONE IF SOMETHING GOES WRONG! ALTHOUGH IF SOMETHING DOES HAPPEN I WILL HELP YOU AS MUCH AS POSSIBLE!!!
INSTRUCTIONS
Installing Instructions (Recovery Menu):
Difficulty: Easy
Reboot Recovery
Download and Flash Kifno's Universal HeroC Script
REMOVED UNTIL RELEASE OF V3.0.0 SOMETHINGS WERE BROKEN IN ROMS WITH THIS RELEASE.....IF YOU HAVE V2.0.1 DON'T USE IT WAIT UNTIL V3.0.0
- THANKS
Wipe cache, and dalvik-cache
Reboot into system
Enjoy
Removal Instructions (Recovery Menu):
Difficulty: Easy
Download the removal zip for latest version
Get It Here
Reboot Recovery
Flash it
Reboot
TESTED AND SUCCESSFUL ON
- Cyanogenmod 7.0.2
- NfiniteFX's Stock Rom
- LiquidSense 2.1.1
- Kifno's 2.1 Sense Roms
- Aosp Gingerbread
- GingerSense/Rock Steady
- Aosp Froyo
- CM6.1
TESTED AND SOMETIMES FAILED (BOOTLOOP/LAGGING) ON...
NOTE: If lagging with latency tweak builds, use the no latency tweak builds.
- Works on Every Rom
Change Log
Code:
4/27
- ALL BY KIFNO!!!!!!!
- Documentation for my opinion of what all my tweaks/scripts do. (I say opinion because I may or may not be correct for all of my explanations. If I am wrong please let me know, so that I can correct it so that others will not learn false information).
- setCPU, collin_ph, overclockwidget, CM7's cpu settings, or any other battery tweak/cpu overclocking utility, REPLACEMENT. This is not to be used with any of those utilities while using this or you will encounter many problems.
- mobile network and wifi speed boost ranging anywhere from 175%-400% speed gains. The percentage amount increased is determined by many other factors (the data tower in your area, your phones condition, the wifi connection, etc)
- Smoother UI
- More Free RAM
- Memory Settings Optimizer
- Any kernel tweak-er
- DroidX Market Tweak COMING SOON
- GPU Composition instead of MDP Composition
- Extended Battery Life and/or Increased Performance as a result of the tweaks and my battery tweak/cpu overclocking utility replacement script
- Tweaked the I/O
5/2
- removed some junk
- made network speeds a bit more stable
- fixed the problem were my 98kiftweaks wasn't writing the values correctly (sd card cache fix improvement & io tweaks)
- adjustments to kifCPU so that there will be longer battery life :D
- added a removal and backup script
Donations
I want everyone who is has ever donated, or has thought of donating me or anyone else to know this. XDA is a place for everyone to learn, teach, and share their work and new findings for android. Donations are not a right on XDA they are a privilege. Donations were allowed for XDA members to give and receive as a way for someone who really appreciates the original poster's work and is a way for the donor to show their thanks by doing more than pressing the thanks button. This is something that the original poster should appreciate and follow up with a PM as a thanks for their thanks, and use that as a notification, that they should keep up the good work and they're doing good things for XDA. Again recieving donations is not a right it is a privilege, that the original poster shouldn't abuse by asking for donations but instead appreciate when recieved. Asking for donations is not right and it is looked down upon on XDA because it goes against the meaning of what XDA is all about. This is something I want everyone to understand before even thinking of donating to me or anyone else or when given a donation. Don't donate because the original poster comes off as asking for money, instead if you choose to donate, donate out of showing more appreciation for another's work and as more of a way to show that you care for their work. I want everyone to understand that.
- Kifno
Credits:
unCoRrUpTeD
Made base of the script when he converted the v0.9 build.prop edits in to a script.
brainmaster
SD Card cache IDEA. I improved it.
farmatito
IDEA for I/O scheduler tweaks. I improved them for our heroes.
montalbert
MOST of the network tweaks. I just changed the values so that it'd be optimal for our heroes.
FloHimself
Screen state IDEA for kifCPU
​
Okay gonna take it for a spin and see how it works. But I have a??? Does this mod preset the max/min cpu speed??? I use jm's kernel @ 710 max 691 min. But at work or when I'm in an area that has poor reception I bump it up to 768min 806 max. Am I able to still do this and use this tweak effectively??? Also does the removal zip from your prior tweak remove this?? Also to use the battery tweaks must I do the whole calibrate thing??? The reason I ask is I use the gf's data2ext mod and letting the battery discharge is a no go.
#Root/Hack-Mod_Always*
laie1472 said:
Okay gonna take it for a spin and see how it works. But I have a??? Does this mod preset the max/min cpu speed??? I use jm's kernel @ 710 max 691 min. But at work or when I'm in an area that has poor reception I bump it up to 768min 806 max. Am I able to still do this and use this tweak effectively??? Also does the removal zip from your prior tweak remove this?? Also to use the battery tweaks must I do the whole calibrate thing??? The reason I ask is I use the gf's data2ext mod and letting the battery discharge is a no go.
#Root/Hack-Mod_Always*
Click to expand...
Click to collapse
No it doesn't remove this I need to make a removal .zip asap. But You can just take the 768mhz zip and upzip it and change the cpu values in the /system/bin/kifCPU.sh file
just look for the the lines that effect the cpu speeds. If you don't know which ones do, then read my explanation for my tweaks
OH YEAH EVERYONE I ADDED MY EXPLANATION FOR TWEAKS If I am wrong about anything please, tell me asap so I can update it so people don't learn false information.
Glad to be on a fresh start with this
I'm gonna be all over this. Haha.
Please post feedback as to hours of battery life increase based on your normal usage and which build worked for you rom. Please post your rom and kernel you're using as well. and any other things you'd like for me to know as well. Thanks
flashing on aospCmod now (right after this nandroid finishes)
Haha. Outstanding!
Rom: CyanogenMod 7.0.2
Kif's Universal Script: Latency 768
Kernel: Sobe's AP5
Battery: Will post feed back when I get off work.
Network speed: Outstanding on my phone!
Keyboard response: before kid's tweak, laggy After kif's tweak, VERY! responsive.
UI: Speedy!
Haha. Feels like I just bought a new phone.
I can't wait to test this out on Rock Steady when I get home! Honestly I flash this on work hours. Ha. Yea I'm a flash freak like everyone else. I should just say I'm sick *cough cough* ha.
Outstanding work bro!
Will post more feedbacks when I get home.
Take care and God Bless.
I'm using one of Zen's kernels (710MHz)on NfiniteFX ROM. Can I use this? I'm not sure Zen's kernels have the governors you mention. Where can I get such a kernel, remembering that I am running Sense. I've read Zen kernels are usually best for Sense.
Thanks!
so far so good installed fine
downloads 35-50% faster on average on a few trials via 3g.
In regard to your explanation:
Code:
/sys/block/mmcblk1/queue/nr_requests
As stated previously in the old thread, this file has never and will never exist on the hero, because we only have one SD device.
This DNS server [0.0.0.0] was better than
google's or opendns (but I've always had problems with opendns)
Click to expand...
Click to collapse
0.0.0.0 is NOT a DNS. All this value does is force the phone to use whichever DNS the network specifies (which it may or may not be doing anyway).
Code:
ro.ril.hsxpa=2
ro.ril.gprsclass=8
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=24
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=3
You said to "ask someone in the networking field" about these values. Someone from the "networking field" (dhero) already chimed in (as did several other people) and told you that some of these lines don't even do anything. The only thing here that's probably making a difference in network speeds is the bitmask value (which is just setting all bits to 1, negating what they actually do).
For instance, I can tell you 100%, for a fact, that the "ro.ril.enable.dtm" line does nothing on the hero, because the entire point of this line is to enable simultaneous use of voice/data on GSM networks. CDMA networks have never been able to do this, and that's not something you can change
The line "ro.ril.enable.a53" also does absolutely nothing on our phones. A5/3 is an encryption algorithm, used on GSM networks. It has no use in CDMA devices, and was actually broken by hackers in recent history.
I've love to see some real documentation of how setting these values really makes a difference. The facts of speed tests are that (1) they are only testing your "burst" speeds which means they don't really answer many questions about long-term performance and that (2) they can vary wildly in the same time frame. I know that I have personally always had better EV-DO speeds than your scripts supposedly provide (sustained average 1.5-2mb/s downstream), and that all depends on signal range and nearby devices.
Right now I'm working on actually reverse-engineering the HTC RIL library to see what these values REALLY change. As far as I can tell, some of them never actually make a difference on the CDMA Hero and are just left over from the GSM Hero and other devices. They are read in from the prop file, but the variables which contain them aren't referenced by the CDMA code paths.
Code:
windowsmgr.max_events_per_sec=60
As stated previously in the old thread, this value does nothing because that's already the default value in the source code.
Code:
keyguard.no_require_sim=true
As stated previously in the old thread, this is already set in the build props.
Code:
debug.sf.hw=1
As stated previously in the old thread (and backed up by PROVIDING THE SOURCE CODE), this line does nothing because it's the equivalent of not specifying it at all. This is why we removed it from the CM build a LONG time ago. The ONLY time this line would EVER make a difference is if someone had deliberately set it to 0 beforehand, and as far as I know, no ROM (including the stock one) has ever shipped with 0 set.
The DEFAULT behavior of SurfaceFlinger is to always use the GPU when possible. The ONLY reason the "debug.sf.hw" line exists is for troubleshooting/debugging, for example when booting the emulator.
------------------------------------------
In regard to my own exploration of the zips provided (for reference I used the no-latency 691 zip):
You have a typo in your code.
Code:
CHECK_NOOP=` cat /sys/block/mtdblock3/queue/scheduler
The tailing backtick is missing.
Why are you providing busybox in your zip? The version you provide (1.15) is outdated; a newer version is already in CM7 and other ROM images. And the folder you're copying it to (system/sbin) doesn't actually exist.
By overwriting the init.local.rc script instead of appending your code to it, you are effectively breaking compcache in CM.
Your CPU profiles contain multiple infinite loops. This is bad practice. Your loops don't contain ANY sleep calls as far as I can tell, which means they run indefinitely, sucking up CPU cycles and battery. Your script should be sleeping on an interval.
The functions called by your infinite loop themselves contain infinite loops, which means that (as far as I can tell) they will never return and charging source changes will never be detected. Am I reading this wrong? Does this really work?
Blah blah blah..
Your scripts are working fine on my phone and others even though you've missed a few things here and there. The main thing is that your trying and trying leads to something even better. Looking forward to seeing v2.x and further.
I feel like I am on a creepy merry-go-round.....
Yet again kifno, when you could be an asset to the community simply by giving proper credits originally and saying that you used others work and made it better, you take all or most of the credit for yourself. If you want to help the community, do so by following the rules and common sense. FYI you cant "improve" brainmasters sd tweak because ALL it does is change the read_ahead_kb in sys/devices/virtual/bdi/179:0/read_ahead_kb. Now here's some links that users/mods/kifno would do well to pay attention to the dates of, these are also the only ones that I personally have reviewed recently, I would bet there are more:
http://andrs.w3pla.net/autokiller/kernel
http://forum.xda-developers.com/showthread.php?t=813309
http://forum.xda-developers.com/showpost.php?p=11496754
http://forum.xda-developers.com/showthread.php?t=991276
Quite obviously this is not kifno's "original" work or ideas, or even code. After all it was recently noted in here that there is code for GSM devices. Why would that be in a script for a CDMA phone, unless of course the code was kanged. I just wish that if work was to be shared, it ought to be done so properly and not with this "MY WORK THIS TIME I SWEAR SILLY" bull.
I sent kifno a PM earlier tonight about this VERY thread when the OP only had credited uncorrupted. I told him to fix the lies about "all mine" and he did somewhat, but not fully as you all can see. My point is that this kind of action on my part SHOULD be unnecessary, but it seems to continue to be in ALL the threads kifno makes. Users, I know lots of this works but that's not the point. It is taken, and unabashedly handed out as original work, which it is not. That is why I continue to post relevant info when it it obvious. It is NOT to incite war, only to pay respect to the actual devs who created these works, which kifno does not seem to want to do.
I'm Pretty sure that the definition of kanging is taking others work without askance or credit - which is what this is. It's actually OK and encouraged to use others work in this community, that way we all get better tweaks and a better knowledge and a better user experience. BUT this is only OK if done following forum rules - which stem from mutual respect and community enrichment.
I am convinced the response will be "BUT BUT I DIDN'T COPY, I MADE THESE MYSELF", to which my response would be "yeah right".
Have a beautiful night/day ladies and gents. I have said my piece...
Let's try to stick to constructive criticism and not resort to personal attacks. It's killing the forum.
il Duce said:
I feel like I am on a creepy merry-go-round.....
Yet again kifno, when you could be an asset to the community simply by giving proper credits originally and saying that you used others work and made it better, you take all or most of the credit for yourself. If you want to help the community, do so by following the rules and common sense. FYI you cant "improve" brainmasters sd tweak because ALL it does is change the read_ahead_kb in sys/devices/virtual/bdi/179:0/read_ahead_kb. Now here's some links that users/mods/kifno would do well to pay attention to the dates of, these are also the only ones that I personally have reviewed recently, I would bet there are more:
http://andrs.w3pla.net/autokiller/kernel
http://forum.xda-developers.com/showthread.php?t=813309
http://forum.xda-developers.com/showpost.php?p=11496754
http://forum.xda-developers.com/showthread.php?t=991276
Quite obviously this is not kifno's "original" work or ideas, or even code. After all it was recently noted in here that there is code for GSM devices. Why would that be in a script for a CDMA phone, unless of course the code was kanged. I just wish that if work was to be shared, it ought to be done so properly and not with this "MY WORK THIS TIME I SWEAR SILLY" bull.
I sent kifno a PM earlier tonight about this VERY thread when the OP only had credited uncorrupted. I told him to fix the lies about "all mine" and he did somewhat, but not fully as you all can see. My point is that this kind of action on my part SHOULD be unnecessary, but it seems to continue to be in ALL the threads kifno makes. Users, I know lots of this works but that's not the point. It is taken, and unabashedly handed out as original work, which it is not. That is why I continue to post relevant info when it it obvious. It is NOT to incite war, only to pay respect to the actual devs who created these works, which kifno does not seem to want to do.
I'm Pretty sure that the definition of kanging is taking others work without askance or credit - which is what this is. It's actually OK and encouraged to use others work in this community, that way we all get better tweaks and a better knowledge and a better user experience. BUT this is only OK if done following forum rules - which stem from mutual respect and community enrichment.
I am convinced the response will be "BUT BUT I DIDN'T COPY, I MADE THESE MYSELF", to which my response would be "yeah right".
Have a beautiful night/day ladies and gents. I have said my piece...
Click to expand...
Click to collapse
After reading this, i agree with u. Kifno should credit more people for most of the things on here. All he did was compile it all together. Am i saying that right?
Ok flash on the sense rom didn't really do so well phone froze 3 times on the market took battery out then froze on whit HTC screen so I tried it cm7.2 and works like a charm
Sent from my HERO200 using XDA App
kifno said:
No it doesn't remove this I need to make a removal .zip asap. But You can just take the 768mhz zip and upzip it and change the cpu values in the /system/bin/kifCPU.sh file
just look for the the lines that effect the cpu speeds. If you don't know which ones do, then read my explanation for my tweaks
OH YEAH EVERYONE I ADDED MY EXPLANATION FOR TWEAKS If I am wrong about anything please, tell me asap so I can update it so people don't learn false information.
Glad to be on a fresh start with this
Click to expand...
Click to collapse
Humm well didn't really wanna go that far into your script. Is there anyway if you have some time free you could possibly edit the 768 scripts for me and post or send them threw pm??? I wouldn't mine running your mods and posting feed back I just don't want to change my daily kernel. Ill hold off on flashing this untill I hear from you. Thanks.
#Root/Hack-Mod_Always*
bravo1565 said:
Ok flash on the sense rom didn't really do so well phone froze 3 times on the market took battery out then froze on whit HTC screen so I tried it cm7.2 and works like a charm
Sent from my HERO200 using XDA App
Click to expand...
Click to collapse
Do you use kifnos sense rom or espresso? I flashed the latency 768 tweak on his espresso 2.1 rom and everythings running flawlessly. I flashed the tweak on a full battery so I'll be back when the phone dies to report my battery life and performance.
jasonmaloney said:
In regard to your explanation:
Code:
/sys/block/mmcblk1/queue/nr_requests
As stated previously in the old thread, this file has never and will never exist on the hero, because we only have one SD device.
Click to expand...
Click to collapse
So we don't have the the mmcblck1 partition? Hmp I know what I'll do to fix m y nr_request tweak then I'll add it to the loop that checks for all values in the mmc* blocks Checked it and it already is I need to edit my reasons for the tweaks lol. So no worries this value is only changed in all mmc blocks that exsist.
jasonmaloney said:
0.0.0.0 is NOT a DNS. All this value does is force the phone to use whichever DNS the network specifies (which it may or may not be doing anyway).
Code:
ro.ril.hsxpa=2
ro.ril.gprsclass=8
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=24
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=3
You said to "ask someone in the networking field" about these values. Someone from the "networking field" (dhero) already chimed in (as did several other people) and told you that some of these lines don't even do anything. The only thing here that's probably making a difference in network speeds is the bitmask value (which is just setting all bits to 1, negating what they actually do).
For instance, I can tell you 100%, for a fact, that the "ro.ril.enable.dtm" line does nothing on the hero, because the entire point of this line is to enable simultaneous use of voice/data on GSM networks. CDMA networks have never been able to do this, and that's not something you can change.
The line "ro.ril.enable.a53" also does absolutely nothing on our phones. A5/3 is an encryption algorithm, used on GSM networks. It has no use in CDMA devices, and was actually broken by hackers in recent history.
Click to expand...
Click to collapse
Oh wee thanks jason The lines you said to remove, and a few more lines have been removed from the network tweak, for next release, because only a few are making the real difference which I have tested.
jasonmaloney said:
I've love to see some real documentation of how setting these values really makes a difference. The facts of speed tests are that (1) they are only testing your "burst" speeds which means they don't really answer many questions about long-term performance and that (2) they can vary wildly in the same time frame. I know that I have personally always had better EV-DO speeds than your scripts supposedly provide (sustained average 1.5-2mb/s downstream), and that all depends on signal range and nearby devices.
Right now I'm working on actually reverse-engineering the HTC RIL library to see what these values REALLY change. As far as I can tell, some of them never actually make a difference on the CDMA Hero and are just left over from the GSM Hero and other devices. They are read in from the prop file, but the variables which contain them aren't referenced by the CDMA code paths.
Click to expand...
Click to collapse
If you could figure out exactly what they change (as far as I know its just general speed) that would be better for the first post's explanation of them. I'm going based of the fact that when I changed a few of the strings values, it slowed the network down, and certain values speed it up.
jasonmaloney said:
Code:
windowsmgr.max_events_per_sec=60
As stated previously in the old thread, this value does nothing because that's already the default value in the source code.
Code:
keyguard.no_require_sim=true
As stated previously in the old thread, this is already set in the build props.
Click to expand...
Click to collapse
Both removed already last night
jasonmaloney said:
Code:
debug.sf.hw=1
As stated previously in the old thread (and backed up by PROVIDING THE SOURCE CODE), this line does nothing because it's the equivalent of not specifying it at all. This is why we removed it from the CM build a LONG time ago. The ONLY time this line would EVER make a difference is if someone had deliberately set it to 0 beforehand, and as far as I know, no ROM (including the stock one) has ever shipped with 0 set.
The DEFAULT behavior of SurfaceFlinger is to always use the GPU when possible. The ONLY reason the "debug.sf.hw" line exists is for troubleshooting/debugging, for example when booting the emulator.
Click to expand...
Click to collapse
This is one that wasn't removed last night but will be I didn't know that it wasn't set to 0 because it wasn't specified in any roms I looked at. Thanks for that info
jasonmaloney said:
In regard to my own exploration of the zips provided (for reference I used the no-latency 691 zip):
You have a typo in your code.
Code:
CHECK_NOOP=` cat /sys/block/mtdblock3/queue/scheduler
The tailing backtick is missing.
Click to expand...
Click to collapse
I hate making those minor mistakes thanks for catching that jason
jasonmaloney said:
Why are you providing busybox in your zip? The version you provide (1.15) is outdated; a newer version is already in CM7 and other ROM images. And the folder you're copying it to (system/sbin) doesn't actually exist.
Click to expand...
Click to collapse
From what uncorrupted told me, in a way it is better than the busybox in most roms. I'll ask him about it, but until he provides reasons why, I'll remove it.
jasonmaloney said:
By overwriting the init.local.rc script instead of appending your code to it, you are effectively breaking compcache in CM.
Click to expand...
Click to collapse
Saw that myself when I looked at CM7's init.local.rc. It breaks that and any other service set in the init.local.rc. WHICH IS NOT GOOD.
jasonmaloney said:
Your CPU profiles contain multiple infinite loops. This is bad practice. Your loops don't contain ANY sleep calls as far as I can tell, which means they run indefinitely, sucking up CPU cycles and battery. Your script should be sleeping on an interval.
Click to expand...
Click to collapse
I'll have it sleep every second or so because I doubt anyone is running their phone straight for hours and hours without letting it sleep. So adding a sleep interval will help with the should help with the battery life portion of this tweak as well
I had a sleep interval back in the v1.x series which helped the battery life, in my other infinite scripts, I need to add that again
jasonmaloney said:
The functions called by your infinite loop themselves contain infinite loops, which means that (as far as I can tell) they will never return and charging source changes will never be detected. Am I reading this wrong? Does this really work?
Click to expand...
Click to collapse
Oh yes Do you know what a until loop is? It basically saying the temperature drops it will cap the cpu speed. Once the temperature isn't high anymore then it uncaps the cpu speed again So this is to keep your phone from getting too hot, I know my phone does Also since the cpu is being capped this would result in the battery temperature going down and therefore once the temp is lowered it returns to the battery charging source changes. So yes it does work
il Duce said:
I feel like I am on a creepy merry-go-round.....
Yet again kifno, when you could be an asset to the community simply by giving proper credits originally and saying that you used others work and made it better, you take all or most of the credit for yourself. If you want to help the community, do so by following the rules and common sense. FYI you cant "improve" brainmasters sd tweak because ALL it does is change the read_ahead_kb in sys/devices/virtual/bdi/179:0/read_ahead_kb.
Click to expand...
Click to collapse
I did improve his tweak, so there you are wrong sir. I will be sending him a message about if he changed the value for all the bdi's sub-directories read_ahead_kb he would in fact improve his sd tweak. He sets it for just the 179:0 but when I changed it to set it for changing all the bdi's sub-directories read_ahead_kb my sd card performance was much better, than just his tweak which just made it better.
il Duce said:
Now here's some links that users/mods/kifno would do well to pay attention to the dates of, these are also the only ones that I personally have reviewed recently, I would bet there are more:
http://andrs.w3pla.net/autokiller/kernel
http://forum.xda-developers.com/showthread.php?t=813309
http://forum.xda-developers.com/showpost.php?p=11496754
http://forum.xda-developers.com/showthread.php?t=991276
Click to expand...
Click to collapse
The one's who I ORIGIANALLY got the ideas from are credited. Anyone who is not credited I did not get any ideas from. If a person isn't allowed to use their knowledge of linux operating system's files and how they tweak linux and use them on android then that just isn't right. I've been on linux for years and you're saying that the tweaks I used for my linux system I can't change the values and use on the heroc, come on now. That isn't fair.
il Duce said:
Quite obviously this is not kifno's "original" work or ideas, or even code. After all it was recently noted in here that there is code for GSM devices. Why would that be in a script for a CDMA phone, unless of course the code was kanged. I just wish that if work was to be shared, it ought to be done so properly and not with this "MY WORK THIS TIME I SWEAR SILLY" bull.
I sent kifno a PM earlier tonight about this VERY thread when the OP only had credited uncorrupted. I told him to fix the lies about "all mine" and he did somewhat, but not fully as you all can see. My point is that this kind of action on my part SHOULD be unnecessary, but it seems to continue to be in ALL the threads kifno makes. Users, I know lots of this works but that's not the point. It is taken, and unabashedly handed out as original work, which it is not. That is why I continue to post relevant info when it it obvious. It is NOT to incite war, only to pay respect to the actual devs who created these works, which kifno does not seem to want to do.
I'm Pretty sure that the definition of kanging is taking others work without askance or credit - which is what this is. It's actually OK and encouraged to use others work in this community, that way we all get better tweaks and a better knowledge and a better user experience. BUT this is only OK if done following forum rules - which stem from mutual respect and community enrichment.
I am convinced the response will be "BUT BUT I DIDN'T COPY, I MADE THESE MYSELF", to which my response would be "yeah right".
Have a beautiful night/day ladies and gents. I have said my piece...
Click to expand...
Click to collapse
The response you are "convinced" will be, is not the response I am giving you. The people whose ideas I were using and made better were back from the 0.x series (which is long ago). Also as for the code not even being mine? THE MAJORITY OF IT IS MINE. I used the screen state idea and built off of it to make a full out, cpu/batter tweak utility replacement. My next step is to make a menu for the users to change those values themselves. The users whose ideas I have used AND IMPROVED ON, have been credited as we talked about, I just had to backtrack who I really got the ideas from and not others who used their ideas as well as myself. Everything else I have done, and came up with myself. Believe it or not. Use linux for a few years on a sucky laptop and I bet you'll be wanted to tweak it, too. Which is how I learned so much about linux's files, which I quickly found android to be almost like a "portable linux" operating system One of the reasons I got the phone. Have a beautiful day ladies and gents
"kif'd"
- Kifno
XGodOfModzX said:
After reading this, i agree with u. Kifno should credit more people for most of the things on here. All he did was compile it all together. Am i saying that right?
Click to expand...
Click to collapse
Read my post, i used IDEAS and made them better. The one thing I did use and compile into the tweak was the network build.prop tweaks. Which some of the strings do nothing. Be on the look out for v2.0.1 also the credits that are there now are for v2.0.1 which will be released tonight. Minor changes made but they're for the better.

[Guide] [Dec.15] How to Tweak and Mod Android Using Init.d Scripts

Hello my fellow Android enthusiasts,
There are many apps that can be used to tweak kernel settings. However, I am a reductionist at heart and prefer to break things down to their essential parts. This guide was written for those who want to be rid of apps that dig into their kernel at every boot. It is a simple guide to writing init.d scripts that the average user should be able to implement.
Happy Tweaking,
Lucius
PS......ITS A CELEBRATION, *****ES!!!!!!!:victory:
Basics:
The android boot sequence is divided into 3 parts.
1) First stage bootloader
2) Kernel loads and prepares hardware
3) User space programs load - this is where init.d scripts are invoked
Init.d scripts execute commands as if they were entered into a terminal. These commands modify the value of parameters that influence our devices behaviour. They are much more flexible than tweaking apps and give end users the ability to tweak and optimize their device as they see fit. They are small, fast, clean... and awesome.
Requirements:
See my guide to modding and optimization for instructions on how to unlock, install TWRP, root, and install custom ROMs/kernels - http://forum.xda-developers.com/showthread.php?t=2232715
Unlocked: Needed to install custom recovery.
Custom Recovery: Needed to install custom ROMs and custom kernels.
Root Permissions: Needed to access /system partition - enabled when most custom ROMs are installed
Init.d Support: Needed to run init.d scripts at boot - enabled in every custom ROM/kernel I have come across.
Scripting Tool: Text editor or script manager - I use Android Tuner to create/test a script and AntTek File Explorer Ex's built in text editor to edit a script.
Root File Manager: I use AntTek Explorer Ex, it reminds me of my old linux setup, its very functional but clean as hell. Also has a built-in text editor.
Step #1: Acquire a Scripting Tool
I use Android Tuner for script creating/testing. You could also use a text editor. AntTek Explorer Ex has a built in text editor that works well. You could also use Notepad++, its a free linux based text editor. Just avoid windows-based editors, they leave extra spaces and invisible characters when enter is pressed.
Step #2: Begin Your Script
To create a script open your text editor or select "create new script" within the "script manager" in Android Tuner. Put your cursor at the very top left corner to begin writing. The first line of a script must invoke a compatible shell that will execute the script, which in our case is the following:
#!/system/bin/sh
Once this line is typed simply hit enter to start a new line. I usually put an empty line after the first line as it makes things easier to see. Extra lines for spacing purposes are fine so long as they are completely empty.
NOTE - Android tuner automatically appends the above line to the beginning of all scripts. It will not be displayed in the script creator but can be found in the final script you save.
TIP - Do not add spaces at the end of a line. Syntax must be exact.
TIP - Adding a "#" to the front of the line instructs the shell to avoid this line, which is essential for writing notes and keeping scripts organized.
Step #3: Write Your Tweaks
Now we can start writing tweaks. If written correctly each line that you enter will execute a command that changes a kernel or system level parameter. This seems daunting at first but it is really quite easy. Once you are finished typing a line simply hit enter to begin the next line. Here is an example of an executable command so you know what we are talking about going forward.
echo "SmartAssv2" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
NOTE - For some examples of useful tweaks see my guide to tweaking and optimization - http://forum.xda-developers.com/showthread.php?t=2232715
GENERAL FORMAT:
The tweaks that we are interested in typically begin by identifying the value to be written to the desired parameter:
echo "parameter value" >
The new parameter value is always followed by the directory tree locating the parameter of interest:
/sys/devices/system/cpu/cpu0/cpufreq/parameter file
In order to create:
echo "700" > /sys/devices/system/cpu/cpu0/cpufreq/gpu_oc
CPU/GPU TWEAKS:
To familiarize yourself with how tweaking is done I would start by opening up the following directory in your file manager:
/sys/devices/system/cpu/cpu0/cpufreq/
This is where cpu parameters, and often gpu parameters, are located. These files/parameters determine how our kernel controls our CPU. To modify our CPU's behaviour these parameters are modified at boot utilizing init.d scripts. Familiarize yourself with these files, open them up with a text editor - it's entirely safe so long as you don't start changing values. If the name of a parameter isn't self-explanatory, opening it up and examining the value it holds will typically explain its purpose. Here are some common parameters that are useful to know.
scaling_available_freq - lists the frequencies available to the cpu
scaling_available_governors - lists the cpu governors available for use
scaling_governor - sets the cpu governor
scaling_max_freq - sets the max freq
scaling_min_freq - sets the min freq
UV_mV_table - sets the voltage table for the cpu
GOVERNOR TWEAKS:
The CPU governor determines how our CPU behaves in response to changes in workload. Changing the governor will impact how our CPU scales through the freq steps available to our CPU. This has a significant impact on the time our CPU spends at different frequency steps, which influences efficiency, performance, battery life, and stability. For more info about the various governors available in android see post #1 at the following link - http://forum.xda-developers.com/showthread.php?t=1369817
Tweakable governor parameters are located in:
sys/devices/system/cpu/cpufreq/
Various interactive governor parameters can be accessed, such as:
go_hispeed_load - Go to hispeed_freq when cpu load at or above this value
hispeed_freq - freq to bump to once go_hispeed_load is passed
min_sample_time - minimum amount of time that can be spent at a frequency before scaling down
timer_rate - the interactive governor checks cpu load at regular intervals to determine whether frequencies should be increased when it comes out of idle. If the cpu is busy between exiting idle and the timer firing we assume the cpu is underpowered and ramp frequency up
HOTPLUG CONFIG:
The hotplug config in Hundsbuah's Kernel allows you to control how CPU cores are brought online as threads are processed. A thread is the smallest sequence of instructions that can be managed independently by a process scheduler. Threads are contained within a process. A process is the execution of instructions contained within a program. On a single processor system multi-threading (multitasking) is generally implemented by transmitting/sending signals over a common signal path; the processor switches between different threads. This switching generally happens frequently enough that the user perceives the threads or tasks as running at the same time. If the CPU is overloaded and a thread is queued up by the process scheduler then lag/stuttering is likely to occur because thread switching does not occur quickly enough to be hidden from the user. On a multi-core system threads can be truly concurrent, with every processor or core executing a separate thread simultaneously, which decreases the potential for lag/stuttering. If core 1 is busy processing a thread and another thread is queued up by the process scheduler we want an additional core to become active so that core 1 does not have to switch between threads. However, we also do not want to bring cores online needlessly. If a core is able to process multiple threads fast enough such that switching is unnoticeable then it would be inefficient to bring another core online. The hotplug config can be found in the following location:
/sys/kernel/rt_config/rt_config
I/O TWEAKS:
The I/O scheduler handles read/write requests from memory (RAM and storage). The I/O scheduler we use can significantly impact I/O (read/write) performance. For more info about the various I/O schedulers available in android see post #4 in the following thread - http://forum.xda-developers.com/showthread.php?t=1369817
The location of the I/O scheduler is:
/sys/block/mmcblk0/queue/scheduler
/sys/block/mmcblk1/queue/scheduler
Use the follIng lines to change the I/O scheduler:
echo "sio" > /sys/block/mmcblk0/queue/scheduler
echo "sio" > /sys/block/mmcblk1/queue/scheduler
KERNEL MODULES:
A kernel module is a file containing code that extends the functionality of our kernel. Modules allow our kernel to communicate with different types of hardware (ex - bluetooth), utilize various file systems (ex - NTFS), or system calls (ex - frandom.ko). Kernels do not automatically come with all available modules, loading only the most essential modules can reduce a kernels footprint and potentially improve performance. Simultaneously, loading improved modules can improve performance in some cases (ex - frandom.ko). For more info about various kernel modules see post #3 in the following thread - http://forum.xda-developers.com/showthread.php?t=1369817
NOTE - You cannot download and load kernel modules from the internet. They need to be compiled for kernel you are using.
To make a kernel module available make sure /system is mounted as rewritable, rather than read-only (see step #5 for further instructions). Copy the module .ko file (ex - tntfs.ko) to the following location:
/system/lib/modules
To check what modules are loaded at boot enter the following command in a terminal:
lsmod
To load a kernel module at boot add the following line to your init.d script:
insmod /system/lib/modules/module name
To unload a kernel module at boot add the following line to your script
rmmod module name
SYSCTL TWEAKS:
This section is currently under construction, more tweaks will be posted once I find them. Sysctl is an interface that is used to examine and dynamically change parameters within a linux based OS.
To change the TCP Congestion Algorithm add the following line to your script:
/system/xbin/sysctl -w net.ipv4.tcp_congestion_control=westwood
NOTE - For a brief explanation of TCP/IP protocols and network congestion algorithms see the following post - http://forum.xda-developers.com/showpost.php?p=48088128&postcount=1884
FINISHING YOUR SCRIPT:
Once all your tweaks are written go through the entire script and make sure syntax is exact - no extra spaces or characters. Save your first script as w/e you want (ill explain naming later) just make sure it doesn't have a file extension. I'm talking total absence of file extensions. WHOA! WHAT! WTF YO!
NOTE - Android Tuner saves scripts by default in the "at" folder in "sdcard0"
Example Script:
Code:
#!/system/bin/sh
#CPU Tweaks
echo "1350 1320 1280 1240 1200 1150 1100 1050 1000 950 900 860 820 780 750 720 700" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
#Governor Tweaks
echo "40000" > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
#SD Tweaks
echo "vr" > /sys/block/mmcblk0/queue/scheduler
echo "vr" > /sys/block/mmcblk1/queue/scheduler
#Module Tweaks
insmod /system/lib/modules/ frandom.ko
rmmod tntfs.ko
rmmod texfat.ko
Step #4: Test Your Script
You can test your script using a root terminal shell (Android Tuner has a terminal). Open a terminal, type "su", and hit enter (or select the box beside "su" in AT). This will give you the ability to run commands as root. To test your script enter the following command:
sh directory of your script
EXAMPLE - sh /storage/sdcard0/at/scripts/01ZenKernelTweaks
Check the files that correspond to the tweaked parameters to see if the script worked. If the values were correctly modified then you have officially finished writing your first working init.d script.
Step #5: Enable Your Script
First, open your file manager, go to your root directory, and remount your /system partition as RW instead of RO. This is typically done by long-pressing the /system folder (ex - AntTek Explorer), file manager settings (ex - esFile Explorer), or through the overflow menu. Once the /system is mounted as RW we can move our script to the init.d folder and change our scripts permissions. The init.d folder is located here:
/system/etc/init.d
The name of your script determines the order in which it is executed. The first two characters determine the order of execution. The ordering is as follows - numbers from 0-99, then letters from A-Z. The first two letters of a script's name are typically numbers between 0-99, this is the standard method of script naming that most developers/tweakers use. Set the name of your script so that it is executed in the order that you wish. Mine is set to execute first because I want to get kernel tweaks done as early as possible.
Once you have named your script long-press it and select "Change Permissions" (or however this is done in your file manager). Give User, Group, and Other read, write, and execute permissions.
Your init.d script will now optimize your tablet quickly and efficiently at every boot. Don't get out of your chair too fast....Before doing anything else, I suggest revelling in your awesome new-found abilities for a significant period of time. Pat yourself on the back. Start referring to yourself as "a boss" if you like. You deserve it.
CAUTION:
Although init.d scripts are easy to make, a bad script may cause boot looping. However, a bad script does not necessarily = boot looping. I have yet to cause a boot loop and I have written many scripts that did not work. Everything typically boots normally, the bad lines in the script are simply not applied. Before enabling your script I strongly suggest taking a Nandroid backup in TWRP. To do so boot into TWRP and select "Backup" from the home screen. This will allow you to restore your entire system, which is done via the "Restore" tool in TWRP.
NOTE - Do not enable scripts to run at boot in a program like Android Tuner or others similar to it. If the script is bad it will cause boot looping because the app will keep trying to run it. If you put the script in the init.d folder and enable it yourself you will avoid this issue.
SUGGESTION:
If you want more examples of tweaks that can help you optimize your tablet see my guide to tweaking and optimization. It fills any gaps in this guide and contains many useful resources. You can find it here - http://forum.xda-developers.com/showthread.php?t=2232715
tweakalicous...
lucius.zen said:
HAPPY TWEAKING,
Lucius
PS......ITS A CELEBRATION, *****ES!!!!!
Click to expand...
Click to collapse
LOL ... great tut Zen ...
Very nice, thanks Zen.
I accidentally stated in Step #3 that "Android saves scripts by default in the 'at' folder in your internal storage"....However, I meant to write "Android Tuner saves scripts...". Changed the OP, just wanted to make sure anyone who has read it already isnt like "WTF ZEN! Where is my damn script! Derpa a derrrr".
Breaking News.....
***************IMPORTANT UPDATE - MUST READ BREAKING NEWS*****************
DEY TUK ARRRRR JEEEERRRRRRRBSSSSS!!!!!!!
.....watching too many episodes of SP lately
lucius.zen said:
How-To Write Init.d Scripts for the tf700
Click to expand...
Click to collapse
Great tutorial!
lucius.zen said:
The number, or letter, at the beggining of the init.d script determines its order of sexecution, beginning at 1 or A, and going up to 99 or Z.
Click to expand...
Click to collapse
The universal convention is to use a numeric prefix from 00 to 99, but in reality the name can be anything and the scripts are simply executed in alphanumeric order - digits come before "A". I recommend using two-digit prefixes as intended.
lucius.zen said:
Code:
#!/system/bin/sh
#CPU Tweaks
echo "1300 1200 1150 1125 1112 1100 1087 1075 1050 1037 1025 1012 987 975 962 950 925 912 900 887 875 862 850 837 825 812 800 775 762 750 737 725 712 700 687 675 650 637 625 600" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
Click to expand...
Click to collapse
Note that the UV_mV_table has a completely different format when reading or writing the file - one reason why I hate this interface. But it's the "standard" that was established by whoever hacked the first implementation, and user mode apps expect it like this.
lucius.zen said:
Although init.d scripts are easy to make, you can potentially cause boot looping, please proceed with caution.
Click to expand...
Click to collapse
To repair this, boot into recovery, connect via adb shell, and do the following:
(if needed
mount -o remount,rw /system
chmod 0666 /system/etc/init.d/50myevilscript
This will remove "execute" permissions for the script, which will effectively disable it.
Say I tested and am currently using 10 scripts, how do I create a .zip recovery file so I can flash/install the scripts at once, every time I reflash or factory reset my rom?
Thanks for your awesome tuto ! But I've a question concerning the gpu governor: it's possible to set this governor with command line too ?
@lucius.zen
It is a nice write up and great tutorial. I am enjoy reading it and keep up the good work... :good:
LetMeKnow said:
@lucius.zen
It is a nice write up and great tutorial. I am enjoy reading it and keep up the good work... :good:
Click to expand...
Click to collapse
@LetMeKnow
Thanks a lot dude very much appreciated, makes me miss contributing to xda. I made a lot of promises and left too much work unfinished. I haven't been on for 6 months because I have been dealing with some pretty serious mental health issues. Apparently I am mildly schizophrenic with comorbid anxiety and attention issues. Been super fun times lol. Hoping to get back in the game this holiday season, would be sweet to share some tweaking/optimization ideas, I havent had much of a chance to check out your tweaks but I have heard great things.
All the best,
Lucius
lucius.zen said:
@LetMeKnow
Thanks a lot dude very much appreciated, makes me miss contributing to xda. I made a lot of promises and left too much work unfinished. I haven't been on for 6 months because I have been dealing with some pretty serious mental health issues. Apparently I am mildly schizophrenic with comorbid anxiety and attention issues. Been super fun times lol. Hoping to get back in the game this holiday season, would be sweet to share some tweaking/optimization ideas, I havent had much of a chance to check out your tweaks but I have heard great things.
All the best,
Lucius
Click to expand...
Click to collapse
Thanks for a kind word... It sounds like that you need to take of yourself a little better before worrying about the contributing to xda. You do a lot for the community already and hope you will get very soon. Please let me know whenever you have time to talk about tweaks and more than happy to share what I know.
Cheers and get well,
LMK
Missing Files
Hi,
Using the guide I came up with the following script:
Code:
#!/system/bin/sh
#CPU Tweaks
echo "1350 1320 1280 1240 1200 1150 1100 1050 1000 950 900 860 820 780 750 720 700" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
echo "20000" > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
echo "1900000" > /sys/devices/system/cpu/cpufreq/interactive/max_boost
echo "1900000" > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo "85" > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo "85" > /sys/devices/system/cpu/cpufreq/interactive/go_maxspeed_load
echo "40000" > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
but I received an error for hispeed_freq and go_hispeed_load claiming "No such file or directory". When I checked the /sys/devices/system/cpu/cpufreq/interactive/ directory, the two files are missing. Are they supposed to be present on the TF700?
Thanks
00shakey00 said:
Hi,
Using the guide I came up with the following script:
Code:
#!/system/bin/sh
#CPU Tweaks
echo "1350 1320 1280 1240 1200 1150 1100 1050 1000 950 900 860 820 780 750 720 700" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
echo "20000" > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
echo "1900000" > /sys/devices/system/cpu/cpufreq/interactive/max_boost
echo "1900000" > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo "85" > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo "85" > /sys/devices/system/cpu/cpufreq/interactive/go_maxspeed_load
echo "40000" > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
but I received an error for hispeed_freq and go_hispeed_load claiming "No such file or directory". When I checked the /sys/devices/system/cpu/cpufreq/interactive/ directory, the two files are missing. Are they supposed to be present on the TF700?
Thanks
Click to expand...
Click to collapse
Everything looks good in the script. Not sure why those parameters are missing. What kernel are you using?
lucius.zen said:
@LetMeKnow
Thanks a lot dude very much appreciated, makes me miss contributing to xda. I made a lot of promises and left too much work unfinished. I haven't been on for 6 months because I have been dealing with some pretty serious mental health issues. Apparently I am mildly schizophrenic with comorbid anxiety and attention issues... Lucius
Click to expand...
Click to collapse
Forgive the digression, I couldn't help wondering: I don't mean to slight the condition in any way, but zen couldn't tackle it so you had to go the physical route?
graphdarnell said:
Forgive the digression, I couldn't help wondering: I don't mean to slight the condition in any way, but zen couldn't tackle it so you had to go the physical route?
Click to expand...
Click to collapse
Sorry I am having trouble understanding what you are asking. Are you wondering if I medication is more effective than meditation?
lucius.zen said:
Sorry I am having trouble understanding what you are asking. Are you wondering if I medication is more effective than meditation?
Click to expand...
Click to collapse
Here we go off topic already ... but just had to throw in my 2 cents. I have many conditions that have been treated for 30+ years (I am in my 50's) I had Chronic Severe OCD that was almost debilitating in my mid 20's. I also have A.D.H.D. (A.D.D) along with boughts of narcolepsy and severe panic attacks (were I end up on the floor or in the ER) anyways, I am a mess or I use to be. I did ALL the drugs Adderall (Amphetamine, Dextroamphetamine Mixed Salts) / Ritalin / Zoloft / bupropion / Xanax all at MAX DOSE. They all relieved some of the systems, but caused other issues to arise (addiction being one). I got into TD and Zen Yoga 10 years ago. 90% of my symptoms went away the first year, and I only take medication for my high cholesterol now. I feel great and work 10 to 13 hours a day. What this has to do with Init.d scripts .... *shrug* .... Pharmaceuticals just suck .
Now back to the Init.d scripting. Great job on the guide !! if this is not pinned it should be !!
Thank you for creating it.
Thibor69
Thibor69 said:
Here we go off topic already ... but just had to throw in my 2 cents. I have many conditions that have been treated for 30+ years (I am in my 50's) I had Chronic Severe OCD that was almost debilitating in my mid 20's. I also have A.D.H.D. (A.D.D) along with boughts of narcolepsy and severe panic attacks (were I end up on the floor or in the ER) anyways, I am a mess or I use to be. I did ALL the drugs Adderall (Amphetamine, Dextroamphetamine Mixed Salts) / Ritalin / Zoloft / bupropion / Xanax all at MAX DOSE. They all relieved some of the systems, but caused other issues to arise (addiction being one). I got into TD and Zen Yoga 10 years ago. 90% of my symptoms went away the first year, and I only take medication for my high cholesterol now. I feel great and work 10 to 13 hours a day. What this has to do with Init.d scripts .... *shrug* .... Pharmaceuticals just suck .
Now back to the Init.d scripting. Great job on the guide !! if this is not pinned it should be !!
Thank you for creating it.
Thibor69
Click to expand...
Click to collapse
Thanks dude! They tried to prescribe me an antipsychotic for my schizophrenia but I try to avoide pharmaceuticals. I agree that meditation, yoga/exercise work really well, as does tailoring my diet, etc. Glad things are going well for you now.
All the best,
Lucius
lucius.zen said:
Sorry I am having trouble understanding what you are asking. Are you wondering if I medication is more effective than meditation?
Click to expand...
Click to collapse
Actually I was asking if Zen would not suffice that you need to take medication. I don't see that drugs would do anything other than suppressing symptoms. Nothing is done about the root-cause, and that's how they get you hooked for life.
My own experience is that body is a reflection of mind and vice versa. The dichotomy is simply false. However, given the ingrained ruts one needs to obliterate, diet for the body must be watched as much as mediation must be practiced for mental well-being. You ever studied Oshawa? Much more than just a regime, the way I see it.
Sorry, I won't digress any further.
lucius.zen said:
The name of your script determines the order in which it is executed. The first two characters determine the order of execution. The ordering is as follows - numbers from 0-99, then letters from A-Z. The first two letters of a script's name are typically numbers between 0-99, this is the standard method of script naming that most developers/tweakers use. Set the name of your script so that it is executed in the order that you wish. Mine is set to execute first because I want to get kernel tweaks done as early as possible.
Click to expand...
Click to collapse
Great guide, thanks for the tutorial. One question, regarding the order of execution of scripts, does it matter if two or more scripts share the same prefix (1st 2 characters), for example 99SuperCharger and 99Supersudaemon, and 98KickAssKernelizer and 98Fly-On, 94engineflush and 94governor, and etc.? I combine scripts from different devs by editing their code to arrest any conflicts when they get executed, though, I don't change the script's name. Never had any problems, just curious on the sequencing of init.d scripts.
iZLeeP said:
Great guide, thanks for the tutorial. One question, regarding the order of execution of scripts, does it matter if two or more scripts share the same prefix (1st 2 characters), for example 99SuperCharger and 99Supersudaemon, and 98KickAssKernelizer and 98Fly-On, 94engineflush and 94governor, and etc.? I combine scripts from different devs by editing their code to arrest any conflicts when they get executed, though, I don't change the script's name. Never had any problems, just curious on the sequencing of init.d scripts.
Click to expand...
Click to collapse
No it doesn't as they get executed alphabetically but it looks a mess and there is little room for ordering.

[TWEAK] Android test tune (for FlashBeatsReloaded Kernel)

I represent a test set of scripts for the automating kernel configuration.
Written and tested on version 3.4.33 [Kernel]FlashBeatsReloaded v3.4.33 OC 1,56Ghz AROMA.
"Having played enough" programs Trickster MOD, Faux123 Kernel Enhancement and similar, I has decided that it is necessary to simplify the process of installing the best, in my opinion, parameters for the kernel when the smartphone turns on. I love experimenting and having fun testing a majority of ROM and kernels. To reduce the "manual work" after reinstalling the ROM/kernels, I did this file.
The installation via TWRP, the presence of pre-installed support INIT.D necessary.
I express my sincere gratitude to users 4PDA.RU and XDA forums for a huge amount of background information and examples of various settings.
I thank all those whose work and experience has helped me to write the script.
Special thanks to the user Thestealth2, which is developing the project [Kernel] FlashBeatsReloaded.
Functions, performed by the script:
Performing FSTRIM for partitions /system, /data and /cache. Analogue "LagFix (fstrim)", but without the "unnecessary" actions and attitudes.
Disabling some "kernel sleepers"
Running the generator of entropy. Analogue - "Seeder"
If the kernel presence ZRAM support, activates the swap file on 200 MB.
Various tweaks related to EXT4 file system and database files format SQLite.
Setting the minimum and maximum CPU frequency
Installing the CPU governor to Ondemand and tuning the power save mode
Installing the I/O Scheduler to ROW and its setting
Installing the GPU governor to Ondemand and configure it
Setting the read ahead buffers to 2MB for internal and external memory
Other tweaks
PS: Criticism, suggestions, etc. welcome.
PPS: I'm not trying to impose someone my opinion, just show one way of the setting options.
Sounds good, will give it a try later on.
Thanks for your work!

[FAQ] Franco Kernel & FKU APK Learner's Lounge

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The purpose of this thread is to have a place where people can discuss Franco's kernel and the application Franco Kernel Updater and ask questions here. I will provide some FAQs and their answers here also. This thread is more aimed at those who may inexperienced at making software modifications to their devices and I will warn you once you have unlocked your boot loader your warranty may be void and ultimately you as the end user are responsible for your device. This way the development threads can be kept clean, easy to follow and not miss important information which can easily get lost in the jungle of posts. I will allow off topic in this thread for general kernel / app / settings related chitter chatter too.
I personally want to thank everyone involved, each who I have mentioned and others who I might of missed (sorry if I have!) for each person has played their role and contributed information and advice to other members of XDA, perhaps unregistered lurkers too! This is a summery of the best information I could find and been putting together over a number of weeks and I am sharing my knowledge as others shared with me back when I was new and inexperienced, enjoy my thread!
Moderator Disclaimer
This thread isn't aimed to be an advertisement but a place to learn.
Information about the kernel
People generally change kernels for battery savings and to add features the stock one doesn't offer. Franco's kernel has several advantages over the stock one in terms of battery saving saving features, one of my favourite being the removal of MPdecision which in lay-mans terms changes the min and maximum speed the CPU can run at based upon live battery temperature checks. Franco's hot plug driver always keeps 2 cores online and always them to scale from 300mhz to 2.3ghz and based upon load conditions will online cores 3 and 4 if required. When you touch the screen the screen the CPU speed is boosted to approximately 1.5ghz for just over a quarter of a second and when load is reduced the CPU speed is able to lower quickly back to lower speeds thanks to his tuned interactive governor. Franco has created a governor for the GPU named interactive which works very much like how the CPU equivilant does. Franco has added some newer drivers for WiFi which also helps reduce idle battery drain while your on a busy WiFi network. Franco has also added an interface where you can boost microphone, speaker and headphone gain levels for audio enthusiasts as well as an interface to allow screen calibration and load pre set profiles to improve your experience with how your display looks! There's clock speed control, voltage control, governor control, hot plug control. You get the idea its full of cool features which can be controlled with the paid Franco.Kernel Application (see later in the thread for most infos)!
Our Developer
Franco is a no nonsense kind of guy, not a fan of buzz words and often tells it as it is kind of guy. He works exclusively on the nexus line. Generally the phones see more attention than tablets and owns and supports all the nexus phones and tabs from Galaxy Nexus right through to the latest Nexus 5. Special thanks to @JNewms for being Franco's tester while he was awaiting shipment of his Nexus 5 so we didn't miss our favourite kernel in that time!
AllYourBasesAreBelongToUs
So to actually run Franco's kernel you need to install it, there's a few ways;
1 use the FKU application to auto flash or download a zip (see below)
2 flash zip manually in recovery, navigating to the file and installing it
3 flashify application on play store by @cgollner using the application to navigate to the file and reboot into it. This is very handy for .img files
4 fastboot flash boot (filename here).img (requires working adb and fastboot aswell as drivers from Google SDK manager
Guide to fast boot
Franco Kernel Updater (FKU) application help
So you may want to know where you can access Franco's application, it can be bought through google play store. The app will allow you to download and flash a kernel to your device, it will allow to make a whole range changes to the kernel settings but bear in mind it already comes with settings for the best balance between performance and battery life automatically pre-set.
2 Android Pit bear in mind this version might not be as up to date as the Google Play Store Version.
3 But i don't want to pay for an app! Don't sweat it there is a free version on google play store. This free version will only download and flash kernels, you cannot configure the kernel settings in this one but you can use scripts / init.d if you are comfortable working at that level. Please bear in mind this isn't compatible with with all Franco's supported devices yet like the One Plus One.
4 You can find the IMGs and Zips to download and flash the kernel from Franco's server
Beta Version APK
There is a beta tester programme which Google introduced some time around when Jelly Bean was launched. Franco allows users to test the new features which don't always work as its for testing purposes and to gain feed back before the regular app is released to the main public. The beta application updates are managed through Google play store so when a new beta version is pushed you download it through the play store as a normal app update. Beta testing can only take place for downloads from Google Play Store not any other download site.
Sounds good how do i join?
There's three things you need to do before you can get on the beta programme
1 Purchase the paid application as its this one which gets updated
2 You need to be prepared to join Google+ and become part of Franco.Kernel community
3 Click here and choose to become a tester then follow the link to update via play store.
Please note this system is designed by Google not Franco. Some people feel this forces people into using a social media which they might not want to use but unforntunatly its the only way to join the beta programme. The good thing is your Google account used to sign in on your device will have G+ account asosiated with it already and G+ ships with most roms these days.
Applicationz Management
There's been a fair amount of discussion about the per app mode service being killed by swiping away the fku app from recent apps (multi task key), this is due to a bug Google introduced in 4.4.1 but wasn't really made apparent till 4.4.2 arrived.
It is best practice to not swipe away apps from your recent as in doing so you will kill any back ground service an app is running. Android manages RAM different than windows, you don't need loads of free ram for a smooth operating system. If you want to exit an app its best to press the home key or if you really to actually fully close it use back key. Exiting an app using back key shouldn't kill its back ground service.
Whatz is the Per App Modez?
You can set the behaviour you might like for certain apps to either limit max - min CPU speeds, gov controls. Anything you want to be different than the normal CPU set up that you use. Hence, per app mode. Good for gaming or light apps, or if you under clock normally it could give you full speed with the camera for instance, be creative!
(Nexus 5 Only)
@Tzfardaya has kindly taken the time to make a dedicated thread about per app modes, sharing kernel settings and per app modes by downloading and importing other peoples settings for other guys try on their own devices.
Can I Greenify FKU appz?
You can but this will prevent the per app mode service from running in the back ground. That service doesn't hurt your battery or ram even if you don't use it. If your per app mode settings aren't getting applied and you use Greenify double check you haven't disabled it 'by accident'.
What doez this button do?
If you long press any item it will explain its purpose then you can choose to set it on boot if you so desire
How do I set on boot in the app?
Press the phone icon to the right of an item so that two arrows appear. This means it is set on boot. Press it again to un-set on boot to return to default settings after a reboot. Check out the image above.
If you have anything set on set on boot and your using SuperSu with notifications you should actually see one / two Franco kernel updater has been granted super user permissions toast notifications appear. If super user notifications are disabled I find easily within a minute they are set just double check back very shortly after if your not sure.
I'm new here whatz the best settingz for battery and performancez?
The default values will always have the best balance between performance and battery life. How ever feel free to play with various settings to your own preferences.
Device Specific FAQs
I'll post some repetitive questions and answers here, click link for your specific device. A huge thanks to @ApriliaM3 for the extra posts to help get this much more organised!
Universal
One Plus One
Nexus 5
Nexus 7 2013
Nexus 4
Nexus 10
Nexus 7 2012
Galaxy Nexus
Change Log for this thread
Universal
Cyanogen Romz
Devices which don't use CAF display drivers like Galaxy Nexus and Nexus 7 2012 and the One Plus One are void from the below statement.
franciscofranco said:
Currently does not work with recent CyanogenMod nightlies or any rom has uses CM sources as a base because they made underlying changes that are now incompatible with Kernels that don't follow their path.
Click to expand...
Click to collapse
Cyanogen often use different drivers than stock / aosp and ROMs based off cyanogen pull their commits from their github and sources so they don't have to work on these things them selves so those rom devs can work on their features. Cyanogen have a tendency of doing things in their own way. To my knowledge CM roms only work with their shipped kernels.
Franco Kernel work on X Y Z romz?
Franco kernel is designed to run on stock / aosp roms only. Or in the case of the One Plus One where its intended for only Cyanogen Mod 11s. This does not include any unofficial stock type roms like the Android L preview available for certain nexus devices. So to reiterate that again, this kernel is only for the stock rom your device shipped with or upgraded via OTA and compatibility with other roms is purely coincidental. There are some unofficial ports that will add compatibility to certain roms or add extra features. These unofficial ports don't offer any official Franco support and for trouble shooting use the thread the developer set up.
2 Corz always onlinez Y? Quad core specific devices only
It is normal for 2 cores to always be online, its like that by Franco's design. It is meant to save battery in the long run as turning cores off and on again all the time is taxing on the battery according to Franco. It also helps keeps things running smoother. Cores 3 + 4 will activate when system load requirements are met.
Thermal Throttle
Thermal throttle is a system put in place to basicly stop your phones internal chips from cooking them selves! When a temperature reading reaches a condition the CPU limits its performance until the temperature reaches safe levels again. You might notice lags in games while this is happening as thermal throttle only really tends to take place during prolonged CPU intensive operations like gaming or during a reboot. You can see if thermal throttle is taking place if your CPU speeds are limited, check back after a few minutes with your screen being off and things should return to normal. You can increase the temperature at which thermal throttle takes place but personally I don't advice this in case you increase the level too much much and you can cause perminant damage or burn your CPU and require potential expensive repairs. Ambient air temperature can influence the chances of being throttled.
Ma batteryz life suckz!
More often than not bad battery life is from a poor managed application running riot. These applications run in the back ground and stop your phone from resting in low power mode (deep sleep). You can use Better Battery Stats (BBS) to track down the process taking place. Please search to find your answer don't post in the kernel thread asking about wake locks use Google or BBS thread and ask.
Colour Profilez
On any device (to my knowledge) changing any colour multiplyer or gamma level doesn't effect the battery at all.
Fast Chargerz
On nexus 5 and nexus 7 2013 USB fast charge mode won't show AC charging in battery stats, it will only ever report USB. The current way its implemented is that during the USB connection data exchange can take place too, meaning you will be charging at the faster speed and also manage your files on another machine. Rest assured it is working and for proof you can check proc/kmsg.
Antutu Rebootz My Phone Halp!
Antutu has a bug where it crashes around 21% of completing its benchmark. Its not just Franco kernel this effects check out the play store reviews.
I got random rebootz!
If you have an unexpected reboot often it means something wrong has happened and this triggered the reboot for some reason or an other. If you wanted to be helpful then use a file manager and navigate to /proc and find last k-msg and upload it to http://pastie.org. This is a report containing information about what your system was doing before the system shut down. Battery pulls cant generate this report. It is best to post these messages with proc/last k-msg attached to the main kernel thread as Franco needs to see them, he said he probably wont monitor this thread so could easily get missed.
Mirrorz plz
Franco's server is here you can download imgs and zips. Obviously mirrors of the paid application are not allowed and against XDA rules and disrespectful to any dev. It costs less than most pints of beer in the UK. Don't be so stingy!
Return to stock romz
Franco's kernel changes these system files below, so to change them back you can remove the .bak extension, or fastboot system.IMG and boot.IMG from a Google factory image which is probably easier and faster.
franciscofranco said:
1 - Rename /system/lib/hw/power.msm8974.so.bak to /system/lib/hw/power.msm8974.so
2 - Rename /system/bin/thermal-engine-hh-bak to /system/bin/thermal-engine-hh
3 - Reboot to the boot loader and flash stock Kernel by downloading the Nexus images and then fastboot flash boot boot.img
4 - If you're using those Moto X dalvik patches you gotta reflash stock system.img, just use the images you just downloaded from 2) and do fastboot flash system system.img
5 - ???
6 - Profit.
Nexus images, google it and its the first hit.
Click to expand...
Click to collapse
What about OTAz?
Your device will only download an OTA update on a stock rom (not custom roms) and it won't install with a different kernel installed. You will loose root permissions after any successful installation but you can gain it again by flashing the latest SuperSu in custom recovery (see next section below). To get any OTA to install successfully you need 100% stock files which the OTA plans to update, with the matching kernel, boot loader and radio. The updater script checks all these files and will abort if it detects (through md5 checks) if any one part doesn't match what it expects. Generally speaking its easier to fastboot system.img and boot.img to return all the files to original state. Flashing system.img and boot.img will not wipe your personal data / apps / stuff. It just replaces all the files to factory originals. Recovery is optional, if you flash an OTA with stock recovery you keep stock recovery installed. If you flash an OTA with a custom recovery it keep that installed. If you feel adventurous you can ADB side load it using either stock recovery or custom.
Whenz da ETAz?
Please don't ask, its ready when its ready. Some people find it rude asking so just don't go there.
Y I loose rootz?
For various reasons not all known to me but superuser permissions can be changed (especially through OTA) as permissions for certain files can sometimes get reset. I recommend using the latest SuperSu by @Chainfire. If you loose root flash the latest Supersu in custom recovery to regain / gain super user permissions.
CPU Tuningz
Info for governorz and their tunablez
For people interested about various interactive tunables here's some 'light reading' though its not my own wording but there's good information for an understanding.
The interactive governor tunablez
In order of appearance in FKU app, these are just the basic ones with hopefully easy to understand explanation of each function
above_hispeed_delay = when your CPU is at hispeed_freq, wait for this long before boosting speed further in response to continued high load. Measured in milliseconds.
boost_pulse_duration = boost CPU speed to input_boost_freq for this amount of time. Measured in milliseconds.
go_hispeed_load = Go to hi_speed_freq when CPU load at or above this value. Measured by system load percentage.
hispeed_freq = Boost CPU to this speed when go_hispeed_load value has been met. Measured in MHz.
input_boost_freq = Boost CPU speed to this frequency on touch screen events. Measured in MHz.
min_sample_time = The minimum amount of time to spend at a frequency before it can ramp down. Measured in milliseconds.
timer_rate = The sample rate of the timer used to increase frequency. Measured in milliseconds.
Hot plug controlz
This is a system in place which controls how many CPU cores are operating at a single time. The range of the control is from 0 - 100.
0 = Perminent quad core only mode
100 = Permanent duel core only mode
1 - 99 = system load in % required to online more cores.
The value defined is at which level of system load to activate all cpu cores. The closer to 0 this number is then its easier for all cores to be be active. The closer to 100 makes it harder for all cores to be active
Quad core devices have obviously 4 cores and the relationship to each other is
CPU 0 - always on
CPU 1 - always on
CPU 2 - tied to cpu 0. Activated when cpu 0 reaches the required load.
CPU 3 - tied to cpu 1. Activated when cpu 1 reaches the required load.
franciscofranco said:
Ok so ahead of launching another r33 test image I'll let you sneak peak the new tunables for the Hotplug driver. There are no changes to the driver algorithm itself, I'm just exposing all these interesting tunables for users that want maximum control and I mean extremely maximum control on how my driver behaves. Feel free to ask away if any explanation is not as good as it could and I'll happy to explain! Here's my documentation:
The load_threshold = first_level, just changed the name of the text to be less ambiguous.
Code:
/*
* system load threshold to decide when online or offline cores
* from 0 to 100
*/
unsigned int load_threshold;
/*
* counter to filter online/offline calls. The load needs to be above
* load_threshold X high_load_counter times for the cores to go online
* otherwise they stay offline
*/
unsigned int high_load_counter;
/*
* max number of samples counters allowed to be counted. The higher the
* value the longer it will take the driver to offline cores after a period
* of high and continuous load
*/
unsigned int max_load_counter;
/*
* if the current CPU freq is above this limit don't offline the cores
* for a couple of extra samples
*/
unsigned int cpufreq_unplug_limit;
/*
* minimum time in seconds that a core stays online to avoid too many
* online/offline calls
*/
unsigned int min_time_cpu_online;
/*
* sample timer in seconds. The default value of 1 equals to 10 samples
* every second. The higher the value the less samples per second it runs
*/
unsigned int timer;
Click to expand...
Click to collapse
Top Tips
Run speaker clean every so often. It really works wonders.
One Plus One
Compatible Romz
Stock Cyanogmod 11S
Wah 100z of Kernal which one for old Androidz?
4.4 <r7
Get your downloadz here
Franco has made a version of his kernel made for non cm11s roms. This should run on both aosp and regular cm11. I believe this is a temporary place holder until cm11 and cm11s make some kernel related merges. You can find the post with download link here
Here is fork for Franco Kernel for Mahdi Rom
Cyanomod 11 boot loopz
This kernel is only designed to run on the stock ROM the device ships with, same as any other device. Its highly unlikely Franco will make forks designed for specific roms how ever if you search you might find a modified Franco kernel for your favourite 3rd party rom in the Android Development section. Send me a link to the thread and I'll add a link in this thread.
Can I double tap to awake ma phonz?
This feature is built into the cyangenmod 11s rom and isn't dependant on kernel and functions just fine using Franco Kernel.
Wifi won't turnz on!
There seems to be an issue with the built in theme manager which can cause the WiFi settings to not be able to turn on or off. A simple reboot should fix this
When will colour controlz arrive?
Update 4/8/14 RGB sliders have been added. No Gamma control as of yet
There is some screens which have yellow areas or yellow tint to them. This might be because the glue hasn't completely cured under your screen which could cause the yellowish appearance. The screen was calibrated by Supercurio (to the best of my knowledge). The back end of being able to control the RGB filters is in place and Franco has requested to Supercurio to allow a user interface to control the RGB filter.
Nexus 5
Compatible Kitkat Romz
No order of favouritism here I will list in order posts reporting Franco kernel working with various roms.
1 Stock
2 Beanstalk
3 Purity
4 Cataclysm
5 Mahdi
6 Slimkat
7 T-Rex
8 Omnirom
9 AOSPA
10 Rastakat
11 Carbon Rom
12 Paranoid Android
Wah 100z of Kernal which one for old Androidz?
4.4 < r58
Grab your downloads
Alternative Ports
@big_bum has made a port using influences from all over place, features include Franco + commits from Chaos(neobuddy89), Code blue (engstk) and Uber (Cl3Kener), + -Ofast + Linaro GCC 4.9.1 + BFQ + ZEN + F2F2 + KSM, always on latest 3.4.y and it works on CM too, if you flash the dedicated zip.
Double Tap / Sweep 2 Wakez
linaro build by @LaboDJ
and another by @PhantomGamers
Screen Back light flickers at low brightness
To disable the feature for super low back light feature which some users report flickering back light;
Open up a terminal emulator and type in su to gain root.
Then type in echo 0 > /sys/module/lm3630_bl/parameters/backlight_dimmer
Musicz clipping / glitching / pausing
Believe it or not this is quite a common issue over the history of android, especially quad core devices.
Disabling adblock software seems to of solved this issue for some and helped for others. The issue was a server containing the adblock hosts makes your network busy and causes errors with music.
If you are still facing issues with music not playing back smoothly bump the min CPU speed from 300mhz to 345mhz and that should do the trick. It will cost a little in battery life but your mp3 should work properly.
Flac support got broke in 4.4 and cause the CPU to ramp up high and get hot. Hopefully a fix will come within 4.4.3
When will colour controlz arrive?
THEY HAVE ARRIVED on 14/1/14!!
Download the file you want to your phone (see below) , use a file editor to remove the .txt extension and place the file in Internal storage\franco.kernel_updater\color_profiles\ . Then using the Franco app you can load any profile you have in that location. Turn the screen off and on to successfully load it. You can set on boot without any worry of any damage.
Primary host download (thanks @vomer)
Secondary host download
Here's a video thanks to @vomer on how to load profiles.
@yorici has started off his own thread dedicated to screen calibration, discussion and FAQ, its well worth a look if your interested in an accurate colour reproduction on your display.
Wherez da changlogzz?
You can veiw Franco's github and here
This is an easy summery
franciscofranco said:
* instead of running Qualcomms MPDecision to control the CPUs/touch boost I'm running my custom hot plug driver and the touch boost is 100% Kernel based instead of Google's solution that goes from the Kernel to user space, then to a file, then back to user space then back to the Kernel
* I'm using interactive governor heavily tuned, stock uses On demand who wastes too much time in higher frequencies
* Using my GPU governor which is more conservative than stock, and stock makes the GPU sleep at a higher frequency than it should (sleep as in a state between active and slumber, active being when the device is using the GPU, and slumber as in having the GPU device in deep sleep)
* Also has a ton less debugging than stock, which reduces overhead
* Has Wi-Fi patches from Google to reduce, immensely, the WLAN wake locks and general Wi-Fi drainage
That's mostly it in terms of battery improvements, probably something else that I missed, but everything is on my github.
Click to expand...
Click to collapse
Init.d
It will work on stock rom but you need busybox installed to system/xbin I suggest using one of the many apps on the play store
vomer said:
so I was thinking that you do not need to put all those quotes in here. How about just this:
Path to CPU:
/sys/devices/system/cpu/cpu0/cpufreq/
Path to GPU:
/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0/
Path to Governer:
/sys/devices/system/cpu/cpufreq/interactive/
This is all that is needed. You can like to my init.d post for a ready-made solution too. I doubt many people will want to mess with this manually.
Click to expand...
Click to collapse
Nexus 5 Specific Voltage Tables PVS 0-6
Someone requested the stock voltage tables, here they are for PVS binning 0-6 (covers all devices) thanks @SetiroN. Of course if you wanted to return to stock voltage unset on boot and reboot is easier. I found this info on the Nexus 5 CPU binning thread
Personal Settings Collections
The Gingerbread Man
vomer
Jamith
Nbsss
Sent from my Nexus 5 using Tapatalk
The Gingerbread Man Kernel and Device Settings Post
In this post I'll keep my settings for various settings for others to see and use for reference if they fancy trying some battery saving tweaks. Anything not mentioned or has --- means I have left as default value. Thanks @JNewms, @Nbsss, @vomer and anyone else who i haven't remembered for their testing so far in the main thread.
I will keep this post updated if anyone wants to book mark it for future reference
My devices
Phone; black nexus 5 16gb
Case; official black bumper
Screen protector; cruzerlite tru glass
Tablet; nexus 7 2013 black 16gb
Case; official Asus black flip case
Screen protector, some generic cheap one. Hoping for a @cruzerlite truglass
Nexus 5 Kernel Settings
CPU
Max 2265 (600) MHz
Min 300 (000) MHz
Interactive
Deadline
Hot Plug
Load threshold 80
GPU
450 (000000) MHz
Up threshold 50
Down threshold 25
Governor Control
Boost Duration 0
Go Highspeed Load 90
Highspeed Freq 1190 (400) MHz
Input Boost Freq 300 (000) MHz
Voltage Tables
Reference is the key word for undervolt especially as not all SoC are built to the same quality so any settings may not work for you and cause a reboot. Do not set on boot until you are certain with over 24 hours time without reboot set on boot. YOU HAVE BEEN WARNED!!! Voltage tables should be evaluated by the defaults and gradually reducing 25mv each time and isolating each CPU freq (set min and max to the same value). If you don't understand don't do it. Again warning given! Voltage can be reverted back to stock if you unset on boot and reboot, how ever if stuck in boot loop due to your own stupidity then fastboot flash boot boot.img stock kernel.
Per App Modes
Download all my pams, Franco's pam's & all custom paths
Very Low Power
I use this for;
Google Play Books, Omega 500, Hold'em ( low res poker), TriOmonies
Max CPU 729 (600) MHz
Input Boost 300 (000) MHz
GPU 200 (000000) MHz
Hot Plug Load Threshold 100
Go Hi Speed Freq 422 (400) MHz
Go Hi Speed Load 90
GPU Down Threshold 25
GPU Up Threshold 50
Low Power
I use this for very light apps, not CPU intensive tasks like;
Drastic (Nintendo DS emu), Dune 2, Google Maps, Klondike (solitaire), Shít Head
Max CPU 1267 (200) MHz
Input Boost 300 (000)Mhz
GPU 320 (000000) MHz
Hot Plug Load Threshold 100
Go Hi Speed Freq 960 (000) MHz
Go Hi Speed Load 90
GPU Down Threshold 25
GPU Up Threshold 50
Gaming
I use this for games to keep CPU temps down to avoid thermal throttle;
DoomGles, Dungeon Quest, Mighty Dungeons, Monopoly, Nitro Nation, Riptide 2 GP, Sky Force 2014, Worms 2 Armageddon, Worms 3
Max CPU 1267 (200) MHz
Input Boost 300 (000) MHz
GPU 450 (000000) MHZ
Hot Plug Load Threshold 80
Go Hi Speed Freq 960 (000) Mhz
Go Hi Speed Load 90
GPU Down Threshold 15
GPU Up Threshold 25
Misc settings
Vibration amp 80
Headphone boost volume 2
Headset gain boost -1
Speaker gain 5
Google settings
Run time compiler ART
Google now on
Google location reporting and location history on
Location setting high accuracy
Screen Calibration
I use Yorici Calibrated Punch
These are profiles made by me
TGM_WP31(V1) (white point at 31)
TGM_WP32 (V1) (white point 32)
Nexus 7 2013 Kernel Settings
CPU
Max 1512 (000) MHz
Min 384 (000) MHz
Interactive
Deadline
Hot Plug
Load threshold 70
GPU
400 (000000) MHz
Up threshold 50
Down threshold 25
Governor Control
Boost Duration 0
Go Highspeed Load 90
Highspeed Freq 1026 (000) MHz
Input Boost Freq 384 (000) MHz
Voltage Tables
See nexus 5 warning above
Per App Modes
Download all my nexus 7 pams and all custom paths
Very Low Power
I use this for;
Google Play Books, Hold'em (poker), Omega 500, TriOmonies
Max CPU 702 (000) MHz
Input Boost 384 (000) Mhz
Boost Duration 0
GPU 128 (000000) MHz
Hot Plug Load Threshold 100
Go Hi Speed Freq 422 (400) Mhz
Go Hi Speed Load 90
GPU Down Threshold 25
GPU Up Threshold 50
Low Power
I use this for;
Drastic (Nintendo DS emu), Dune 2, Google Maps, Klondike (solitaire), Shít Head
Max CPU 1026 (000) MHz
Input Boost 384 (000)MHz
Boost Duration 0
GPU 200 (000000) MHz
Hot Plug Load Threshold 70
Go Hi Speed Freq 918 (000) MHz
Go Hi Speed Load 90
GPU Down Threshold 25
GPU Up Threshold 50
Gaming
I use this for games to keep CPU temps down to avoid thermal throttle;
DoomGles, Dungeon Quest, Monopoly, Nitro Nation, Riptide 2 GP, Sky Force 2014, Worms 2 Armageddon, Worms 3
Max CPU 1242 (000) MHz
Input Boost 384 (000) MHz
Boost Duration 0
GPU 400 (000000) MHz
Hot Plug Load Threshold 70
Go Hi Speed Freq 702 (000) MHz
Go Hi Speed Load 90
GPU Down Threshold 15
GPU Up Threshold 25
Misc settings
Headphone boost volume 2
Headset gain boost -1
Speaker gain 3
Google settings
Run time compiler ART
Google now on
Google location reporting and location history on
Location setting high accuracy
Favourite Android Game
Its got to be DoomGLES which is the classic doom game we all loved from the 1990s but with improved graphics due to 3D hardware acceleration and using open gles. There is dynamic lighting and cool effects for water and blood, it really refreshes the game and makes it very fun. If you have the .wad files you can play all the full games, doom 1, doom 2, plutonia, TNT and allows you to load custom .iwad please don't ask me for the files for the games I cannot share them . There is a free version, I recommend you have a go and if you like it £1.73 really is bargain for the paid version!
Sent from my Nexus 5 using Tapatalk
Nexus 7 2013
Compatible Kitkat Romz
No order of favouritism here I will list in order posts reporting Franco kernel working with various roms.
1 Stock
2 Rastakat
3 Paranoid Android
Wah 100z of Kernal which one for old Androidz?
Many old versions were made legacy android builds. Grab your downloads
Android ver F.K Build.
4.3 < r4
4.4 < r17
Alternative Ports
CAF compatible version maintained by @RobbieL811
Sabermod franco.Kernel*(caf & aosp ) by @zaclimon
When will Debz be added?
UPDATE @osm0sis got deb to work on 10/4/14. There's an os-fixed version to try below!
osm0sis said:
Done. New r13: flo-fixed and deb-test up.
http://v.ht/osmod
Native USB-OTG working (ie. no app required), and hopefully fixed the governor issues with deb to make it fully functional (disabled mpdecision service and added interactive permissions tweaks to match the flo ramdisk).
@pietropizzi @poondog @franciscofranco
Click to expand...
Click to collapse
pietropizzi said:
Thanks osm0sis, it booted up fine with the fixed deb! Interactive was default and the FREQ-Range is fully used. I'll play some more with it but it looks good till now ! ��
Gesendet von meinem Nexus 7 mit Tapatalk
Click to expand...
Click to collapse
osm0sis said:
@franciscofranco Achievement Unlocked: Deb Support!
Someone go quote me in the N5 thread so he sees. :laugh:
Click to expand...
Click to collapse
Colour Controlz
RGB sliders have been added in to the FKU beta app so finally we have a little control over our screens colour calibration. Personally I found my display just a touch too warm and now now longer is an issue now I have tuned it.
When you make a profile and save it, upload the file somewhere and leave a link and I'll download the file, then I'll upload to the collection and I'll keep them organised and rename to my OCD standard (I really don't like it when listed items have some starting with capitals and others not and spaces between words).
To load profiles you just need to download them and place the file in SD/Franco kernel updater/colour profiles, then go to the app and look for the desired file. If / when nexus display control app gets updated the same applies but put the files SD/nexus display control/colour profiles.
Nexus 7 2013 Screen Profiles
Snapdragon 600 or S4 Pro?
We have officially a s4 pro chip but better in a few aspects making it close to the snap dragon 600. The differences are explained very well below
zaclimon said:
Anandtech did open the device and saw that the cpu (APQ8064–1AA) is different from the one on the Original S4 pro. (APQ8064) The main difference is that there's Krait 300 cpu cores instead of Krait 200 like with the S4 Pro inside the Nexus 4, which makes it looks like more of a Snapdragon 600 than an actual S4 pro. The naming however I think is more because of the defafult clock speed (1.5 vs 1.7 in base SD600)
Here's the link if you need it:
http://www.anandtech.com/show/7176/nexus-7-2013-mini-review/4
Click to expand...
Click to collapse
Personal Settings Collections
The Gingerbread Man
Nexus 4
Compatible Kitkat Romz
No order of favouritism here I will list in order posts reporting Franco kernel working with various roms.
1 Stock
2 Cataclysm
3 omniROM
4 Purity
5 Carbon
6 Slimkat
7 Paranoid Android
8 OverStock
9 Dirty Unicorn
10 Rastakat
Wah 100z of Kernal which one for old Androidz?
Many old versions were made legacy android builds. Grab your downloads
Android ver. F.K Build.
4.2 > r165
4.3 > r193
4.4 > r203
Nexus 10
Compatible Kitkat Romz
No order of favouritism here I will list in order posts reporting Franco kernel working with various roms.
1 Stock
2 Slimkat
3 Rastakat
Wah 100z of Kernal which one for old Androidz?
Many old versions were made legacy android builds. Grab your downloads
Android ver. F.K Build.
4.3 r13
4.4 r14
Nexus 7 2012
Compatible Kitkat Romz
No order of favouritism here I will list in order posts reporting Franco kernel working with various roms.
1 Stock
2 Slimkat
3 Rastakat
4 Shiney
Wah 100z of Kernal which one for old Androidz?
Many old versions were made legacy android builds. Grab your downloads
Android. FKU Build no.
4.2 > r65
4.3 r75
4.4 > r76
Sysfs Commands (advanced level)
osm0sis said:
Since there's finally a bit of interest in init.d scripts in here, here is a file I've been maintaining as a reference for myself for some time now, containing all the sysfs commands franco doesn't have in the 2nd posts of the GN and N7 threads. They are all set to the defaults as of r36x.
All of this is set in f.Ku, but hey, it never hurts to learn how it all works behind the scenes.
This is not a shell script, and cannot be run as one as-is; it's just a bunch of commands. UV should never be set with init.d in case they are unstable.
Code:
# CPU Clock
echo 1228800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 537600 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq
# UV
echo "1450 1425 1400 1375 1350 1250 1225 1200 1050 900 850 800" > /sys/class/misc/customvoltage/mpu_voltages
echo "1375 1291 1140 950" > /sys/class/misc/customvoltage/iva_voltages
echo "1150 1050 950" > /sys/class/misc/customvoltage/core_voltages
# SR
echo 1 > /sys/kernel/debug/smartreflex/sr_mpu/autocomp
echo 1 > /sys/kernel/debug/smartreflex/sr_iva/autocomp
echo 1 > /sys/kernel/debug/smartreflex/sr_core/autocomp # CORE no longer SR calibrated on FK
# Governor
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
echo 0 > /sys/devices/system/cpu/cpufreq/interactive/boost
echo 80000 > /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
echo 95 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo 729600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo 45000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
echo 85 > /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
echo 80000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack
# I/O Scheduler
echo 1024 > /sys/block/mmcblk0/queue/read_ahead_kb
echo "deadline" > /sys/block/mmcblk0/queue/scheduler
echo 500 > /sys/block/mmcblk0/queue/iosched/read_expire
echo 5000 > /sys/block/mmcblk0/queue/iosched/write_expire
echo 4 > /sys/block/mmcblk0/queue/iosched/writes_starved
echo 0 > /sys/block/mmcblk0/queue/iosched/front_merges
echo 1 > /sys/block/mmcblk0/queue/iosched/fifo_batch
echo "row" > /sys/block/mmcblk0/queue/scheduler
echo 100 > /sys/block/mmcblk0/queue/iosched/hp_read_quantum
echo 100 > /sys/block/mmcblk0/queue/iosched/rp_read_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/lp_read_quantum
echo 2 > /sys/block/mmcblk0/queue/iosched/hp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/lp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/rp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/rp_write_quantum
echo 10 > /sys/block/mmcblk0/queue/iosched/read_idle
echo 20 > /sys/block/mmcblk0/queue/iosched/read_idle_freq
echo "cfq" > /sys/block/mmcblk0/queue/scheduler
echo 8 > /sys/block/mmcblk0/queue/iosched/quantum
echo 125 > /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 250 > /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 16384 > /sys/block/mmcblk0/queue/iosched/back_seek_max
echo 2 > /sys/block/mmcblk0/queue/iosched/back_seek_penalty
echo 93 > /sys/block/mmcblk0/queue/iosched/slice_sync
echo 39 > /sys/block/mmcblk0/queue/iosched/slice_async
echo 2 > /sys/block/mmcblk0/queue/iosched/slice_async_rq
echo 7 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 > /sys/block/mmcblk0/queue/iosched/group_idle
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency
echo "bfq" > /sys/block/mmcblk0/queue/scheduler
echo 4 > /sys/block/mmcblk0/queue/iosched/quantum
echo 125 > /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 250 > /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 16384 > /sys/block/mmcblk0/queue/iosched/back_seek_max
echo 2 > /sys/block/mmcblk0/queue/iosched/back_seek_penalty
echo 7 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 > /sys/block/mmcblk0/queue/iosched/max_budget
echo 4 > /sys/block/mmcblk0/queue/iosched/max_budget_async_rq
echo 125 > /sys/block/mmcblk0/queue/iosched/timeout_sync
echo 39 > /sys/block/mmcblk0/queue/iosched/timeout_async
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency
echo 20 > /sys/block/mmcblk0/queue/iosched/raising_coeff
echo 256 > /sys/block/mmcblk0/queue/iosched/raising_max_time
echo 7000 > /sys/block/mmcblk0/queue/iosched/raising_max_softrt_rate
echo 304 > /sys/block/mmcblk0/queue/iosched/raising_rt_max_time
echo 2000 > /sys/block/mmcblk0/queue/iosched/raising_min_idle_time
echo 500 > /sys/block/mmcblk0/queue/iosched/raising_min_inter_arr_async
echo "" > /sys/block/mmcblk0/queue/iosched/weights
# CAB
echo 1 > /sys/class/backlight/s6e8aa0/acl_set
# TCP Congestion Avoidance Algorithm
echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control;
# N7-specific
echo 500 > /sys/devices/system/cpu/cpu0/cpufreq/cpu_lp_max # LP core no longer used on FK
echo "1125 1100 1075 1050 1025 1000 975 950 925 900 875 850 825" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
echo 2 > /sys/class/misc/tegra_hotplug_control/cores_on_touch
echo 60 > /sys/class/misc/tegra_hotplug_control/first_level
echo 50 > /sys/class/misc/tegra_hotplug_control/second_level # No longer used in newer driver in FK
echo 25 > /sys/class/misc/tegra_hotplug_control/third_level # No longer used in newer driver in FK
echo 0 > /sys/devices/tegradc.0/smartdimmer/enable
Here's a link to my post of the possible GPU OC frequencies on the N7.
Click to expand...
Click to collapse
Possible GPU OC Frequencies
osm0sis said:
Here are the possible GPU values I found in the source.
Looking at it again you could probably grab any of the different clock values in the file from the 4 CORE sections starting at line 238, they're all CORE frequencies, just for different parts of the core like vde (video decoding engine), mpe (media processing engine), etc., and generally capping at the stock 416. I imagine they all just ramp within their brackets to whatever the closest one (without going over) is to what we set:
https://github.com/franciscofranco/...4084f8/arch/arm/mach-tegra/tegra3_dvfs.c#L238
You'd end up with the following options:
Code:
228000, 234000, 247000, 267000, 275000, 285000,
304000, 332000, 352000, 361000, 380000,
400000, 408000, [i]416000[/i], 437000, [i]446000[/i], [i]484000[/i],
[I]520000[/i],
[I]600000[/i], [i]625000[/i]
Edit: Metallice has supplied some more insight on the coded values. So we can mostly disregard the above.
So from https://github.com/franciscofranco/...mr1/arch/arm/mach-tegra/tegra3_clocks.c#L3201 we get:
So in summary? The ones you should use based on the legitimate timings from the code are:
Code:
208, 260, 300, 312, [B]416, 520, 666, 750[/B]
But devs have also added some other intermediate steps in at the following mathematically appropriate spots which are good options and also make sense with other parts of the code (as seen in the first half of my post):
Code:
[B]446, 484, 600, 625, 700[/B]
P.S. Don't try to underclock. Instant freeze.
Click to expand...
Click to collapse
Galaxy Nexus
Compatible Kitkat Romz
No order of favouritism here I will list in order posts reporting Franco kernel working with various roms.
1 Stock
2 Paranoid Android
3 Paranoid Saberdroid
4 Slimkat
5 Omni
6 Carbon
7 AOKP
8 Shiney
9 official cyanogenmod
10 unofficial cyanogenmod
Wah 100z of Kernal which one for old Androidz?
Many old versions were made legacy android builds. Grab your downloads
Android ver. F.K Build.
4.2 > r384
4.3 r395 JB
4.4 r395 KK
Whoz da Osmodz¿
@osm0sis has played a significant part in the development of the Franco kernel mostly on galaxy nexus and nexus 7 2012. He is a highly respected member and has fingers in several projects around xda including working directly on Franco's kernels for Gnex and N7. He takes Franco's kernel and with some help of the other Franco Dev Team help further optimise settings to ensure you guys always get the best setting for performance and battery. These include modifications to interactive governor and the Franco Dev Team spent along time optimising all the IO schedulers for best performance. These changes all got put through to the main Franco kernel. Since Franco doesn't have much time for Galaxy Nexus with all these newer devices Osm0sis is pretty much the main maintainer for it these days.
Sysfs Commands (advanced level)
osm0sis said:
Since there's finally a bit of interest in init.d scripts in here, here is a file I've been maintaining as a reference for myself for some time now, containing all the sysfs commands franco doesn't have in the 2nd posts of the GN and N7 threads. They are all set to the defaults as of r36x.
All of this is set in f.Ku, but hey, it never hurts to learn how it all works behind the scenes.
This is not a shell script, and cannot be run as one as-is; it's just a bunch of commands. UV should never be set with init.d in case they are unstable.
Code:
# CPU Clock
echo 1228800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 537600 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq
# UV
echo "1450 1425 1400 1375 1350 1250 1225 1200 1050 900 850 800" > /sys/class/misc/customvoltage/mpu_voltages
echo "1375 1291 1140 950" > /sys/class/misc/customvoltage/iva_voltages
echo "1150 1050 950" > /sys/class/misc/customvoltage/core_voltages
# SR
echo 1 > /sys/kernel/debug/smartreflex/sr_mpu/autocomp
echo 1 > /sys/kernel/debug/smartreflex/sr_iva/autocomp
echo 1 > /sys/kernel/debug/smartreflex/sr_core/autocomp # CORE no longer SR calibrated on FK
# Governor
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
echo 0 > /sys/devices/system/cpu/cpufreq/interactive/boost
echo 80000 > /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
echo 95 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo 729600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo 45000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
echo 85 > /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
echo 80000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack
# I/O Scheduler
echo 1024 > /sys/block/mmcblk0/queue/read_ahead_kb
echo "deadline" > /sys/block/mmcblk0/queue/scheduler
echo 500 > /sys/block/mmcblk0/queue/iosched/read_expire
echo 5000 > /sys/block/mmcblk0/queue/iosched/write_expire
echo 4 > /sys/block/mmcblk0/queue/iosched/writes_starved
echo 0 > /sys/block/mmcblk0/queue/iosched/front_merges
echo 1 > /sys/block/mmcblk0/queue/iosched/fifo_batch
echo "row" > /sys/block/mmcblk0/queue/scheduler
echo 100 > /sys/block/mmcblk0/queue/iosched/hp_read_quantum
echo 100 > /sys/block/mmcblk0/queue/iosched/rp_read_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/lp_read_quantum
echo 2 > /sys/block/mmcblk0/queue/iosched/hp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/lp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/rp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/rp_write_quantum
echo 10 > /sys/block/mmcblk0/queue/iosched/read_idle
echo 20 > /sys/block/mmcblk0/queue/iosched/read_idle_freq
echo "cfq" > /sys/block/mmcblk0/queue/scheduler
echo 8 > /sys/block/mmcblk0/queue/iosched/quantum
echo 125 > /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 250 > /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 16384 > /sys/block/mmcblk0/queue/iosched/back_seek_max
echo 2 > /sys/block/mmcblk0/queue/iosched/back_seek_penalty
echo 93 > /sys/block/mmcblk0/queue/iosched/slice_sync
echo 39 > /sys/block/mmcblk0/queue/iosched/slice_async
echo 2 > /sys/block/mmcblk0/queue/iosched/slice_async_rq
echo 7 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 > /sys/block/mmcblk0/queue/iosched/group_idle
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency
echo "bfq" > /sys/block/mmcblk0/queue/scheduler
echo 4 > /sys/block/mmcblk0/queue/iosched/quantum
echo 125 > /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 250 > /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 16384 > /sys/block/mmcblk0/queue/iosched/back_seek_max
echo 2 > /sys/block/mmcblk0/queue/iosched/back_seek_penalty
echo 7 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 > /sys/block/mmcblk0/queue/iosched/max_budget
echo 4 > /sys/block/mmcblk0/queue/iosched/max_budget_async_rq
echo 125 > /sys/block/mmcblk0/queue/iosched/timeout_sync
echo 39 > /sys/block/mmcblk0/queue/iosched/timeout_async
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency
echo 20 > /sys/block/mmcblk0/queue/iosched/raising_coeff
echo 256 > /sys/block/mmcblk0/queue/iosched/raising_max_time
echo 7000 > /sys/block/mmcblk0/queue/iosched/raising_max_softrt_rate
echo 304 > /sys/block/mmcblk0/queue/iosched/raising_rt_max_time
echo 2000 > /sys/block/mmcblk0/queue/iosched/raising_min_idle_time
echo 500 > /sys/block/mmcblk0/queue/iosched/raising_min_inter_arr_async
echo "" > /sys/block/mmcblk0/queue/iosched/weights
# CAB
echo 1 > /sys/class/backlight/s6e8aa0/acl_set
# TCP Congestion Avoidance Algorithm
echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control;
Click to expand...
Click to collapse
Personal Settings Collections
osm0sis
Change logs;
-on going- trying to list compatible roms over all devices
18/11/13 Initial post
18/11/13 fIx many spelling and grammor errors
18/11/13 added screen shots
18/11/13 added FAQ
18/11/13 added voltage tables
18/11/13 added some info about the kernel, features and a small peice about Franco
20/11/13 added device specific placeholders for questions about device specifics
20/11/13 added a poll but cocked it up
20/11/13 added y i lost rootz question
20/11/13 added some colours to text and played with text sizes, leet me know if this works for you visualy?
20/11/13 added 2 cores always online y question
21/11/13 update what about OTA explanation
21/11/13 updated why I loose root explanation and changed its location in the post
21/11/13 added screen shot for why I lost root
21/11/13 added a piece about Osm0sis and Osmod in Galaxy Nexus
21/11/13 updated a few sentences for grammar / spelling errors
21/11/13 added double tap / sweep to wake question
29/11/13 added a basic summarised kernel change log
30/11/13 edited colour control information about nexus 5
1/12/13 feeling quite proud of my thread
4/12/13 added question why colours have reverted back to stock removing the blue tint
5/12/13 edited OTAZ a little more
5/12/13 added instructions for 4 methods to install the kernel
5/12/13 added links to SDK manager and Google factory image page
5/12/13 added Return to stock rom
6/12/13 further editing of OTA and edited return to stock rom
19/12/13 added links for unofficial n5 builds with tap 2 wake
19/12/13 added a link to a lengthy discussion about tunables on galaxy nexus
21/12/13 posted link to very comprehensive guide by @droidphile about governor and tunables, many thanks much better than I could have done and over 1,500 thanks for 1 post is insane!
25/12/13 updated set on boot
27/12/13 another spell check session
15/1/14 updated colour controls nexus 5
16/1/14 removed old stuff for old colour tuning and added link to my drop box containing colour profiles
18/1/14 remove the bit about antutu
18/1/14 edited color control explanation a little
19/1/14 mini faq colour control added with perms from yorici
22/1/14 edited wording for my instructions on colour profile loading
22/1/14 added Q about deb support
7/2/14 updated set on boot section
11/2/14 lots of small improvements and updating 1st post sections
15/2/14 updated double tap etc etc wake section
18/2/14 edited cyanogen ROM
18/2/14 added fast charge
18/2/14 added moar pretty screen shots
23/2/14 major restructure of OP with a post per device. Massive thanks to @ApriliaM3
23/2/14 added a few new pictures
25/2/14 edit and update nexus 5 info, colours, music
25/2/14 added Greenify info to universal
25/2/14 added Wah 100z of Kernal which one for old Androidz for all device showing kernel to use for all supported android versions!
26/2/14 lots of info added for GN and N7-1 thanks Osm0is for the pointers there buddy
26/2/14 added Colour Profilez Q to universal section
3/3/14 added link to guide to fastboot
3/3/14 thread moved from nexus 5 q&a to android general section
9/3/14 edited the info about interactive gov
10/3/14 removes text heavy quotes to remove 6 billion characters from nexus 5 and replaced with links to specific posts
10/3/14 organise post 2 a bit, added a couple of new [email protected]'s
10/3/14 moved items about application settings to post 1
12/3/14 alot of tidy up links, resizing stuff and maintance
13/3/14 tidy up moar links! Added a few more pictures, updated per app mode images and replaced nexus 5 image.
23/7/14 added one plus one. Moved setting post. Edited CPU setting and Pam's. Lots of other stuff I probably forgot.
Sent from my Nexus 5 using Tapatalk
The Gingerbread Man said:
If there is anything anyone feels I have missed please post and I'll add it to the OP
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
good thread! my suggestions on how to improve that FKU:
1) it doesn't tell you the version number, it gets cutoff at the side there?
2) eliminate that right part of the app, its weird how it has 2 'planes' kinda annoying to have to swipe one of them away
3) make it more user friendly with checkboxes instead of values u have to enter, newbies won't know what is high/low range
4) also make a set on boot option radio button on each page of settings, no one knows the LONG press lol
5) have cpu/battery temp readings on the 1st page of app, not in system monitor, i hardly use that app
thanks
last_kmsg
I'm using franco's r13 with Cataclysm rom and my phone rebooted while I was using whatsapp earlier today. I'm using Dalvik (never switched to ART) and have done no UV/OC/UC. Here's my last_kmsg.
Hope it has some useful info in it
cobyman7035 said:
good thread! my suggestions on how to improve that FKU:
1) it doesn't tell you the version number, it gets cutoff at the side there?
2) eliminate that right part of the app, its weird how it has 2 'planes' kinda annoying to have to swipe one of them away
3) make it more user friendly with checkboxes instead of values u have to enter, newbies won't know what is high/low range
4) also make a set on boot option radio button on each page of settings, no one knows the LONG press lol
5) have cpu/battery temp readings on the 1st page of app, not in system monitor, i hardly use that app
thanks
Click to expand...
Click to collapse
1 & 2 that's by design which Franco is following googles design principles. Check out just about any Google app you find they have multi panels and swipy bits
3 I think is planned I want it to
4 I don't understand set on boot radio. What do you mean there bud? With the long press set on boot is constistant around the app. Once you found it you will know. I think there's a mini tutorial which mentions that if you wipe your app data and reboot you should see
5 Franco felt the status page was redundant and removed it
Sent from my Nexus 5 using Tapatalk
bleuxeon said:
ChangelogZ ?!
Click to expand...
Click to collapse
Done :silly:
liperus said:
I'm using franco's r13 with Cataclysm rom and my phone rebooted while I was using whatsapp earlier today. I'm using Dalvik (never switched to ART) and have done no UV/OC/UC. Here's my last_kmsg.
Hope it has some useful info in it
Click to expand...
Click to collapse
welcome and congratulations on your first post and submitting a bug report in hte correct way, your off to a flying start here! These posts where you are reporting a reboot are best in hte main franco thread. Franco said he probably wont monitor here so it could get missed by him.
The Gingerbread Man said:
welcome and congratulations on your first post and submitting a bug report in hte correct way, your off to a flying start here! These posts where you are reporting a reboot are best in hte main franco thread. Franco said he probably wont monitor here so it could get missed by him.
Click to expand...
Click to collapse
Haha thanks I've been following the other thread (yes, all 300+ pages of it ), but I can't post there ( dev thread and it's my first post ), so I posted it here. Maybe someone can "forward" it to franco's thread?
liperus said:
Haha thanks I've been following the other thread (yes, all 300+ pages of it ), but I can't post there ( dev thread and it's my first post ), so I posted it here. Maybe someone can "forward" it to franco's thread?
Click to expand...
Click to collapse
il quote your post and copy paste to the main one. You need 10 posts i think to post in dev threads
The Gingerbread Man said:
il quote your post and copy paste to the main one. You need 10 posts i think to post in dev threads
Click to expand...
Click to collapse
Thank you. Yes, exacly, I need 10 posts...
And thanks for this thread, I hope it'll ease things in the main one. It's definitely annoying seeing the same questions again and again and again every 5 posts.
liperus said:
Thank you. Yes, exacly, I need 10 posts...
And thanks for this thread, I hope it'll ease things in the main one. It's definitely annoying seeing the same questions again and again and again every 5 posts.
Click to expand...
Click to collapse
No worries youl be up to 10 posts before you know it! The idea of this thread was to stop those questions or refer them here. It gets like this in every device tbh and it annoys me and like you I tend to read most posts in threads I subscribe to
Sent from my Nexus 5 using Tapatalk

[DEV][APP] waut.ch! - Calibration for Android - version 145

Utility for background calibration, curation and tuning of the device towards an intuitive interface.
Subsystems being battery, entropy, encryption, disk, cpu, memory, filesystem, ui, scheduler, and network, all safe and open source technology.
Presented in this educational gaming metric format with infinite feedback and an interestingly assymetric chance. scribble anywhere, check in some stress, or find the 8!
waut.ch! does one hope to receive from this?
Well, increasing degrees and amounts of a certain "Je ne sais quoi" or responsiveness from the user interface for a start. Better battery life perhaps. Better quality of life, maybe.
And waut.ch! can only perhaps be described as "A qualified quantification of the placebo effect"
waut.ch! might benefit from this?
In the Android device space:
Designers
Users
Manufacturers
Recyclers
Developers
Compilers
Support personnel
OEMs
The Friendly Neighborhood Nerd/Technician.
“Make the most of yourself....for waut.ch! is all there is of you.” - Ralph Waldo Emerson ( paraphrase )
All along the waut.ch! tower - Bob Dylan
waut.ch! - Sometimes used in some colloquium as "watch!", keen upon reducing the TDP of mobile devices to 1.0 watt!
ARM variants of Android only Donut 1.6+
Please uninstall either Seeder or CrossBreeder prior to using this.
Root recommended, else reactivity metric is interesting and introduces uniqueness into the entropy pool anyway. Metric may demonstrate a certain asymmetry that is expected from predictable human actions. Efforts have been made to remove time seed logic from haveged in order to improve upon encryption and system-wide performance and security.
Also numerous other subsystems require careful calibration to facilitate this process.
Rewritten code, subset of functionality for upstream project - CrossBreeder ( https://forum.xda-developers.com/showthread.php?t=2113150 )
Please feel free to view and analyze source and functionality and report bugs and discuss etc on the XDA forum:
( https://forum.xda-developers.com/android/apps-games/app-waut-ch-calibration-android-t3549967 )
Google Play store:
( https://play.google.com/store/apps/details?id=ch.waut )
Please visit: /data/data/ch.waut/files/bin on the device itself for partial shell source code and XDA Downloads section and Github for full source code.
Reboot at convenience liberally or sparingly to reseed the entropy pool or as is known in common parlance, for good luck!
Thanks.
Havged source code:
https://github.com/Openand-I/haveged
Adhoc Payment URL to support development efforts : https://paypal.me/openand/10
Frappe ( "free-paid" ) same-version to support development efforts : http://waut.ch
Custom haveged source code as used in this piece of software: https://github.com/Openand-I/haveged
=====
Version Name: 59a6333e-9ed9-43f8-8dad-51ed46c17e28
cb.sh: cache pressure - 500
cb_io.sh: read_ahead - 0
cb_io.sh: nr_requests - 0
$ md5sum *.apk
661c30b02b2321300624af98feaa5bad *145-waut.ch.apk
661c30b02b2321300624af98feaa5bad *oi.apk
$ sha256sum *.apk
6d23b8da87dc5516583a55a3203c9f5068ea8fe8765ece489080ef663c8aee15 *145-waut.ch.apk
6d23b8da87dc5516583a55a3203c9f5068ea8fe8765ece489080ef663c8aee15 *oi.apk
https://github.com/Openand-I/haveged
https://github.com/openand-inc/waut.ch
https://forum.xda-developers.com/devdb/project/?id=19218#downloads
https://forum.xda-developers.com/android/general/app-waut-ch-calibration-android-version-t3858365
https://github.com/openand-inc/waut.ch/raw/cb0c60025f86a4fdc4778506e97ee80eb1c00b45/oi.apk
https://github.com/openand-inc/waut.ch/raw/master/145-waut.ch.apk
-------------------------
Recommended:
- ntp: automatic system time update from internet is enabled.
please check the clock and fiddle around with the timezone settings in case of any issues. one may need to set the timezone manually.
then simply run the app to initiate a time sync
the network time sync happens at around 3am. so the time to check is in the morning.
- Please disable mount namespace separation in the superuser app to take advantage of the mount optimisations.
- Reboot once and occasionally to reseed the entropy pool. It's good luck!
- Do ensure that the waut.ch service has started upon reboot. Just run if it doesn't start it automatically!
Note: Please note that the haveged binary in the APK is a static binary and works on both PIE and non-PIE environments. It is also UPX compressed. UPX for Android didn't compile. So UPX for linux was used to compress the executable file. It is an elegant solution as both on disk and in memory space(?) is reduced by 70% per executable. One is welcome to decompress the file using 'upx -d'.
Full source code is provided on Github and build scripts are attached here and on Github.
There is no license required to both install the app or distribute it, both within the developer ROM community or in commercial form. Adhoc payment URL to support development - https://www.paypal.me/openand/10
Again do note that the license to use the APP and source code is free worldwide and irrevocable in full or partial form. All other open source components simply inherit their license. But under no circumstances is any use thereof legally binding or relevant.
--------
Utility for background calibration, curation and tuning of the device towards an intuitive interface.
Subsystems being battery, entropy, encryption, disk, cpu, memory, filesystem, ui, scheduler, and network, all safe and open source technology.
Presented in this metric format with infinite feedback and an interestingly assymetric chance. scribble anywhere, check in some stress, or get lucky for that matter!
-----
ARM variants of Android only Donut 1.6+ ( should even be compatible with the latest ARM Android 9+ )
Please uninstall either Seeder or CrossBreeder prior to using this. And other "mods" or "tweaks".
Root recommended, else reactivity metric is interesting and introduces uniqueness into the entropy pool anyway. Metric may demonstrate a certain asymmetry that is expected from predictable human actions. Efforts have been made to remove time seed logic from haveged in order to improve upon encryption and system-wide performance and security.
Also numerous other subsystems require careful calibration to facilitate this process.
Rewritten code, subset of functionality for upstream project - CrossBreeder ( https://forum.xda-developers.com/showthread.php?t=2113150 )
Please feel free to view and analyze source and functionality and report bugs and discuss etc on the XDA forum:
( https://forum.xda-developers.com/android/apps-games/app-waut-ch-calibration-android-version-t3858365 )
Google Play store:
( https://play.google.com/store/apps/details?id=ch.waut )
Please visit: /data/data/ch.waut/files/bin on the device itself for partial shell source code and XDA Downloads section and Github for full source code.
The app will amongst other maintenance tasks tune sqlite databases regularly and reseed the entropy pool or as is known in common parlance, for good luck!
Thanks.
Payment URL: https://paypal.me/openand/10
XDAevDB Information
waut.ch!, App for all devices (see above for details)
Contributors
idcrisis
Source Code:
[url]https://github.com/Openand-I/haveged[/URL]
[url]https://github.com/openand-inc/waut.ch[/URL]
[url]https://forum.xda-developers.com/devdb/project/?id=19218#downloads[/URL]
Previous Version Information - 144
305bd30f-0c8a-40d8-baf5-330c68f62d51
Status: Stable
Created 2017-01-01
Last Updated 2020-08-18
$ md5sum *.apk
8ea8e8c132a584767a12e394f7975654 *144-waut.ch.apk
8ea8e8c132a584767a12e394f7975654 *oi.apk
$ sha256sum *.apk
4925066a106c83b18ac6e563f03331c56b72777e66973db591c9776d706595e3 *144-waut.ch.apk
4925066a106c83b18ac6e563f03331c56b72777e66973db591c9776d706595e3 *oi.apk
https://github.com/Openand-I/haveged
https://github.com/openand-inc/waut.ch
https://github.com/openand-inc/waut.ch/raw/master/144-waut.ch.apk
https://github.com/openand-inc/waut.ch/raw/f699d3763507ec1f91d82b9ce25c53036b460a9e/oi.apk
-----
Version notes:
haveged: static non upx binary used
cb.sh: lock fixes
Recommended:
- ntp: automatic system time update from internet is enabled.
please check the clock and fiddle around with the timezone settings in case of any issues. one may need to set the timezone manually.
then simply run the app to initiate a time sync
the network time sync happens at around 3am. so the time to check is in the morning.
- Please disable mount namespace separation in the superuser app to take advantage of the mount optimisations.
- Reboot once and occasionally to reseed the entropy pool. It's good luck!
- Do ensure that the waut.ch service has started upon reboot. Just run if it doesn't start it automatically!
Please support development, simply use https://paypal.me/openand/10 or the payment URL.
Or you can simply buy the "frappe" ( free-paid ) version of the app: http://waut.ch
Recommended:
- ntp: automatic system time update from internet is enabled.
please check the clock and fiddle around with the timezone settings in case of any issues. one may need to set the timezone manually.
the network time sync happens at around 3am. so the time to check is in the morning.
- Please disable mount namespace separation in the superuser app to take advantage of the mount optimisations.
- Reboot once and occasionally to reseed the entropy pool. It's good luck!
- Do ensure that the waut.ch service has started upon reboot. Just run if it doesn't start it automatically!
Issues:
- superuser - Please disable mount namespace separation in the superuser app ( for optional but recommended mount options ). Also please revisit the app entry inside the superuser app to ensure the waut.ch service can run on boot unattended. One can see the logs on another day to ensure that the scheduler ran correctly in the night.
- Non root users - User Interface can help in clearing the random device. Please try and obtain root to avail of most features
- Some Samsung users - One is also requested to raise a ticket with Samsung who may be running old PE detection rules that flag any compressed EXE.
- x64 users - Reports are that the binaries run on 64 bit as they are static! Please compile one's variant of the binary if required. Entropy generations removes CPU jitter and hence runs cooler and more secure.
- Intel users - User Interface can help in clearing the random device. Please compile one's variant of the binary if required. Entropy generations removes CPU jitter and hence runs cooler and more secure.
- Maintenance scheduler VACCUUMS and INDEXES "ALL" SQLITE databases. Some folks may not like that. But given that they're no WAL mode anyway, it's a bottleneck worth removing safely.
- There is a concerned effort to state that 32-bit ARM Android Go/One < 1 GB RAM devices are all that's required for long term functioning. Higher no issues.
- Please try and use a heap size of 96MB. Attempts have been made to set heap size dynamic but ideally this should be done in the build.
- Please clear cache or factory reset upon issues to gain at least another year of MTTR ( Mean Time To Recovery ) for each device.
Thank you!
License
License concerns:
haveged - inherited - https://github.com/Openand-I/haveged
busybox - inherited - https://github.com/openand-inc/busybox
- Busybox simple extract, possibly edit the .config file in 'vi' and type 'make'
The requisite tools are installed using:
apt-get install gcc-arm-linux-gnueabi
apt-get install libncurses5-dev
apt-get install gawk
The following is a step in another direction as the 'make' command works perfectly after extraction, but this is provided for posterity:
wget http://busybox.net/downloads/busybox-1.24.1.tar.bz2
tar -xjf busybox-1.24.1.tar.bz2
cd busybox-1.24.1/
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
sqlite3 - inherited - https://github.com/openand-inc/sqlite
waut.ch - 'none', non legally binding, and non legally relevant on a worldwide scale and irrevocable ( derived works are allowed to add their own licenses as long as the import ( meaning ) of the phrase "non legally binding and non legally relevant" is implied throughout ( not required to include text at all )) and does not reflect upon future updates of this software in any manner adversely.
He is back! Welcome back! Looking forward to this great new project! The only thing I might be missing is the dnsmasq filtering, which in my opinion if by far better solution than any kid of firewall/blocker
Sent from my Galaxy Tab 2 3G using Tapatalk
qWantUS said:
He is back! Welcome back! Looking forward to this great new project! The only thing I might be missing is the dnsmasq filtering, which in my opinion if by far better solution than any kid of firewall/blocker
Sent from my Galaxy Tab 2 3G using Tapatalk
Click to expand...
Click to collapse
Mate!
There are some serious issues with DNSMASQ.
- It crashes on wrong syntax of any option. Cannot do for a server.
- Command line syntax changes between original branch, Android and Cyanogen MOD. Not merged.
- Android fork far behind main branch
- Consumes port 53 on server run without sharing interfaces. This is on the Android branch. Main branch has this resolved.
- CPU loop for most Android DNS versions that show up only upon server run, rather than the tethering run. Possibly hijacked open source branch.
- Tethering modifications to Android branch ( command line addons ) not required any more as the main branch has incorporated methods to dynamically change IP addresses on the fly.
- It is probably encumbered by coding standards and export issues with only one developer. It is emblematic of most such over-reused projects.
- Hash table in memory, therefore future block list will use up RAM. Some others have disk based caching.
- Static blocklists are fairly not scalable for 10 years hence. Needs wildcard blocklists.
- DNS cache poisoning/overloading ( leading to denial of service) possible by any process/app.
It is therefore recommended to use either of:
pdnsd
unbound
djbdns
and standalone dhcp clients and servers from the Entware repository. And also these are interesting:
DANE
DNSSEC over TLS
BTW, all Android is encumbered by simple denial of service attack simply by reading from /dev/random by any app.
In order to try and package this into a simplish product, deleting /dev/random was not implemented.
idcrisis said:
Mate!
There are some serious issues with DNSMASQ.
- It crashes on wrong syntax of any option. Cannot do for a server.
- Command line syntax changes between original branch, Android and Cyanogen MOD. Not merged.
- Android fork far behind main branch
- Consumes port 53 on server run without sharing interfaces. This is on the Android branch. Main branch has this resolved.
- CPU loop for most Android DNS versions that show up only upon server run, rather than the tethering run. Possibly hijacked open source branch.
- Tethering modifications to Android branch ( command line addons ) not required any more as the main branch has incorporated methods to dynamically change IP addresses on the fly.
- It is probably encumbered by coding standards and export issues with only one developer. It is emblematic of most such over-reused projects.
- Hash table in memory, therefore future block list will use up RAM. Some others have disk based caching.
- Static blocklists are fairly not scalable for 10 years hence. Needs wildcard blocklists.
- DNS cache poisoning/overloading ( leading to denial of service) possible by any process/app.
It is therefore recommended to use either of:
pdnsd
unbound
djbdns
and standalone dhcp clients and servers from the Entware repository. And also these are interesting:
DANE
DNSSEC over TLS
BTW, all Android is encumbered by simple denial of service attack simply by reading from /dev/random by any app.
In order to try and package this into a simplish product, deleting /dev/random was not implemented.
Click to expand...
Click to collapse
Very comprehensive explanation indeed! I am no expert in Linux, only an average user [emoji6]
I was not aware of so many obstacles using dnasmasq, but aware of it's unreliability while using it for blocking stuff in pfsense. But I must say, I had similar experience with unbound, however, probably due to the lack of linux knowledge.
The way I understand is that host blocking is no longer viable due to scales of blocking required today. But sadly there is no alternative for that on android. I have been trying another tool, called sharkmasq but developer sadly abandoned it, while it seems very unfinished and unreliable. I also understand the reasons behind leaving netfiltering out of your development, just, in desperation, I search for the hope [emoji3]
P. S.
Thank you very much for your reply and for your time putting it together. Nevertheless I will look forward to further developments of this new exciting project!
Sent from my LG-D855 using Tapatalk
Uhm, my device seems more responsive even when I use a very low CPU frequency, but is it normal that the app doesn't ask for root permission even if I'm fully rooted? I'm using a Nexus 5 running Nougat. Thank you
Inviato dal mio Nexus 5 con Tapatalk 2
Hi, yes, part of the design criteria. Without root, the metric is interesting. With root, it will automatically start the background processes including the daily cleanups.
Best way to know that the background processes are running is to install Seeder ( but whatever you do don't start it! . Entropy should show around 4096.
Still in the testing phase, does it worth excluding the app from "android optimisation list"? I also use "power nap", not sure will that cause any side effects...
Sent from my LG-D855 using Tapatalk
Let us know If Seeder has RNGD off and still reports ~ 4096 entropy then all is hunky dory.
The new update asked me for root permission, all right here now
Have been busy lately with life, but had occasionally played with phone. So my findings so far: I use this app on my old galaxy tab 2 3g on slim6. Seeder shows entropy being filled in no time at all. Can't really say much about performance, but it seems that it behaves a little smoother. I also use it on my daily LG G3 on stock MM rom with custom kernel, but seeder is reporting very low entropy, if seeded is left on for 1 minute, I can see that entropy never goes above 900? Goes up slowly but then gets used, and then very slowly goes up again and gets used.
Sent from my LG-D855 using Tapatalk
Reboot once after first install kicks in the animation changes. And good luck
New version uploaded with haveged updates. Build scripts also added.
Feedback solicited about the compiler flags etc. Basically the idea is that the ARM v5 binaries should work for all past and future versions of 32-bit Android without modification.
UPX binary could only be compiled for x86 linux.
To answer question, second device, not running, may need to check su logs
Also backend binaries are 32 bit, may not work on 64 bit. GUI's ok.
I am very confused about the frontend of this app that looks like some number game that I really don't understand . Also, I don't understand the description very well. Finding the 8??? Reboot when animation kicks in? What animation?? Nothing seems to happen. I just see a still of a beach with a red number
But something DID happen though, so I am in business. I will keep you curious for a moment, while firstly giving you a good reason for a hard laugh:
I am trying to revive an LG L3 E400! Yep, that's right . Just for fun and educion. In fact I already succeeded quite a bit. I flashed JellyCast V7rev1, used some stuff from V6 SuperCharger (not entropy thingie coz I already intended to use CrossBreeder for that) and 3 scripts from Fly-On Mod. I came here via the CrossBreeder thread (of course). I have already tried CrossBreeder 7.2.13 (I followed advise from @f3tus here, he advised to use that older version). Entropy went up (so it worked) but I did not experience much performance improvement. I did experience more "not responding" issues though. So I reverted to the pre-CrossBreeder backup. And then came your app.....
So that's a very short summary of the many, many, many hours I spent last 2 weeks on this ancient minimalistic but very adorable phone. Now... back to this Waut.ch! app. Presuming that it had done something, I checked the entropy level after first reboot: still a jumpy number between 150 and 200 or so. Despite the fact that the service shows up as running. Then, a lot more playing with the "game" without understanding what I was doing. Just hoping for some wonder. Some message.... just...... something! But nothing. Just a beach with a red number. And a clock. And a questionmark. Or exclamation mark. Pffffff.. So.... let's reboot again. Then eat a sandwich and drink (more) coffee. Then check entropy again. And there it is! Steady at 4089! At first I thought his app was failing because the number didn't change anymore. Just steady. With the old CrossBreeder 7.2.13 I got 4096 a lot but it was a very jumpy number, going even below 1000 a lot. Well, some time passed while writing this post so let's check again: Wow, right now it says 4091 (99%)! One hour later: 4092! (It had spontaneous reboots inbetween).
I am testing it now for a few hours and have these problems:
"Not responding" issues (same as old CrossBreeder).
Spontaneous reboots (3 already). One of them failing to boot at all (stuck at JellyCast logo).
Two times, after a reboot, GPS was disabled. Not consistently though.
No noticable performance gain.
By the way, I am testing like real world usage. Just opening, using and closing apps. I use the same apps all the time so that gives a very good feeling about performance. More meaningful than benchmarks to me. My goal is to make this phone suitable for normal daily usage.
Your app is using a combination of serveral mods, right? I would like to be able to enable / disable each one separately. How can I do that? For example, I have a gut feeling that my "not responding" issues (and reboots?) do not come from the entropy mod but perhaps from governor tweaks or something else. Any chance that you will add enable buttons in the app? Or supply seperate scripts?
Update: I DO have performance gain! Not consitently though. Apps sometimes starting faster than ever. Also still the aforementioned quirks. Last hours no more auto-reboots. Entropy reaching 4096 now, just a little bit wobbly. There seems to be a lot of potential.
The stutter was an issue with the last version.
Do try the latest one and let us know.
Also better if you install the Play store also so the updates are automatic.
Version name is changed GUID if comparing. Better than comparing version numbers.
GUI is non functional, just a visual representation of haptic feedback and actual randomness spread.
It's like drawing points in the whites of a poached egg. If you can see a pattern, you'll be rich in the stock market
Today I removed the app. The biggest problem is random reboots for me. As said, it has potential because sometimes apps started faster than ever on my ancient LG L3. But not consistently. So maybe I 'll try again later.
Sorry for my first post, probably tl;dr. I will repeat my most important question: can you provide us with separate scripts? I mean: I would like to test the entropy thing without the other tweaks as you described in the OP.
Dude!
You're probably using an old version. We'll never know. Will we? Will we now?
There's a small trick that borders on superstition. The famous random device block gremlin tends to disappear if you run the GUI in scribble mode. Basically what may be happening is the block is hit and then the stupid kernel makes whatever decision it makes. Usually at the cost of usability in favour of some stupid religious Linux fervour. Someone should report that to LINUX.
Or another entropy generator, haveged or RNGD or Seeder may be running. Which is a big no! Best to run it on stock ROMS or full custom ROMs ( please ask the developer if they're running any variant of above and to recommend coexistence or better variant of any subcomponents or piece of code. ). In other words, open source!
Also, the separate scripts are in the /bin directory on the phone itself. May require bash and ADB skills.
And full source on XDA and GitHub.
I'll construe this as a possible request to also post the shell scripts from GitHub into the XDA project as separate attachments. Which I can do. In due course
Cheers.
Well, I took it from Play Store. Is that an old version?

Categories

Resources