Skip to content
This repository has been archived by the owner on Mar 24, 2023. It is now read-only.
sp edited this page Feb 2, 2021 · 3 revisions

What is Kernel Profiler?

Welcome to Kernel Profiler wiki! Kernel Profiler is a free and open-sourced profile based kernel management utility, which allows kernel developers to provide predefined profiles to their users.

Download

What are the requirements of Kernel Profiler?

  • ROOT Access
  • Kernel-level support

Features of Kernel Profiler?

  • Switch between profiles (no limit in number) provided by the kernel developer in one click (for users).
  • Apply default profile, pre-defined by the developer or assigned by the user, on boot.
  • Completely (almost) customise the interface of app in accordance with the kernel (for developers).
  • Easily create profiles and necessary configuration file within the app (for developers).

How to add Kernel Profiler support in a kernel

Kernel Profiler expects a configuration file (kernelprofiler.json) in a certain specific structure and one or more "profiles" (basically shell scripts) placed inside "/data/kernel_profiler".

Structure of "kernelprofiler.json"

"kernelprofiler.json" necessarily contains a "title" string as well as a number of optional strings to properly identify a specific kernel. An example "kernelprofiler.json" can be found here.

  • "title": "Title of your kernel". The "title" should be a string from your kernel's "uname -a". It will be later matched on your user's devices, and also be displayed as app's main title. Please note that it is the only way of the app to distinguish a supported kernel and should be done carefully.

  • "description": "A short description (in one line) about your kernel". Please note that the "description" string will be also displayed in the app along with the main title.

  • "default": "The exact name of the default profile including ".sh" extension". Please note that the "default" profile will be executed on boot on a supported device.

  • "developer": "The identity (name, pet name or anything similar) of the developer". Please note that the "developer" string will be displayed in the bottom part of the app along with a "©" symbol.

  • "support": "A link to the discussion page or a support group of your kernel". Please note that the "support" string will be linked to the app's settings menu.

  • "donations": "A link to send donations to the developer". Please note that the "donations" string will also be linked to the app's settings menu.

Structure of "profiles"

Kernel Profiler considers any properly formatted shell script as a "profile". Optionally, the developer may add a line starting with "# Description=" somewhere in the "profile" so that the app will recognize and display it as the "profile description". An example "profile" can be found here.

How to integrate into an "Anykernel" zip

Adding the following lines into anykernel.sh after placing all the support files, such as a properly formatted kernelprofiler.json and one or more profile scripts, into ramdisk/kernel_profiler, allow you to inject Kernel Profiler support upon kernel installation.

if [ -e $ramdisk/kernel_profiler ]; then
	# Inject Kernel Profiler support
	if [ -e /data/kernel_profiler ]; then
		# Remove old files
		rm -rf /data/kernel_profiler/*
		mv $ramdisk/kernel_profiler/* /data/kernel_profiler/
	else
		mv ramdisk/kernel_profiler/ /data/
	fi
fi

The following commit shall be used for further reference

Support Development

If you like to appreciate my efforts to provide this applications entirely free, non-intrusive and without Ads, please consider supporting the development in some way. Maintaining this project (along with other android applications maintained by me - more than 10 applications at the time of last updating this page on February 02, 2021) takes the most majority of free time in my life. So, each and every support from the android community will be hugely appreciated.

Currently, I can accept donations via via Liberapay, PayPal, Ko-fi, or SmartPack Donation Package.

Some other ways to support this project includes, but not limited to

  • Leave a good rating or/and review in Google Play (It's free)!
  • Help me to translate this applications into your local language (or improve existing translations).
  • Share good words about this application with others (family, friends, and other enthusiastic android users).