A no-nonsense kernel tweak script for Linux and Android systems, backed by evidence.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
tytydraco 54376f5574 Migrate for balance
Signed-off-by: tytydraco <tylernij@gmail.com>
3 years ago
CONTRIBUTING.md Add back metadata 4 years ago
LICENSE Add back metadata 4 years ago
README.md Update README.md 4 years ago
ktweak Migrate for balance 3 years ago

README.md

KTweak

A no-nonsense kernel tweak script for Linux and Android systems, backed by evidence.

Another "kernel optimizer"?

No. Well, yes. However, a "kernel optimizer" is a poor way to put it. KTweak performs kernel adjustments based on facts and evidence, unlike other optimizers with poorly written or heavily obfuscated code.

  • NFS Injector uses closed source, compiled binaries with various typos in the README. It also provides a "pro" version that costs money.
  • MAGNETAR also uses closed source, compiled binaries. I'd love to say more about this, but I can't even find out what the module even does.
  • FDE.AI also uses closed source, compiled binaries with a paid variant.
  • LKT sets random nonsensical build.props that don't even exist.
  • ZeetaTweaks is a clone of KTweak with the values changed. As of the V11 zip, it disables essential system services, deletes files permanently from /data/data, kills perfd (which is the userspace boosting daemon), disables SELinux, disables fsync, and various other detrimental changes.

What's different about KTweak?

Unlike other "kernel optimizers", KTweak is:

  • Entirely open source with no compiled components
  • Concise, at less than 200 lines long
  • Backed by benchmarks and evidence
  • Designed by an experienced kernel developer
  • Non-intrusive and completely systemless

Benchmarks

The following benchmarks were performed on a OnePlus 7 Pro running the stock kernel provided by the OEM on Android 10. KTweak sacrifices throughput for latency, since latency correlates to UI / UX smoothness. This explains the slight regression with the scheduler throughput.

Scheduler latency via schbench (lower is better)

  • Stock: 50.0th: 4052 75.0th: 14288 90.0th: 26848 95.0th: 32960 *99.0th: 45120 99.5th: 49856 99.9th: 59200 min=0, max=73600

  • KTweak: 50.0th: 1054 75.0th: 1790 90.0th: 2628 95.0th: 3836 *99.0th: 8880 99.5th: 11472 99.9th: 18080 min=0, max=32781

Synthmark Latencymark (lower is better)

  • Stock: 10 / 12
  • KTweak: 4 / 4

Scheduler throughput via perf bench sched messaging (lower is better)

  • Stock: 0.331 seconds
  • KTweak: 0.808 seconds

Scheduler throughput via perf bench sched pipe (lower is better)

  • Stock: 16.159 seconds
  • KTweak: 18.599 seconds

The Tweaks

Head over to the script itself to learn what everything does. It is documented in the comments.

Other Notes

You should know that on Android devices, KTweak applies after init finishes + Android mounts + 120 seconds in order to prevent Android's init from overwriting any values.

Contact

You can find me on telegram at @tytydraco. Feel free to email me at tylernij@gmail.com.

Join the releases channel at @ktweak, or the discussion channel at @ktweak_discussion.