Skip to content

Instantly share code, notes, and snippets.

@MrCarb0n
Last active August 6, 2022 15:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MrCarb0n/a2f51feab7fdc28b15d4da3f07526cf2 to your computer and use it in GitHub Desktop.
Save MrCarb0n/a2f51feab7fdc28b15d4da3f07526cf2 to your computer and use it in GitHub Desktop.
#!/system/bin/sh
# AOSP Enhancer
# Author: LOOPER (iamlooper @ github)
# Todo: If you do changes in code then make sure to change referring line numbers to code in comments respectively.
###############################
# Required Tools
###############################
# $1:filepath $2:value
write()
{
for p in $1; do
[[ -f "$p" ]] && {
chmod +w "$p" 2> /dev/null
echo "$2" > "$p"
}
done
}
xlog()
{
log_file="/storage/emulated/0/Android/aosp_enhancer.txt"
case "$1" in
"-i") shift && echo "[*] $@" >> "$log_file" ;;
"-e") shift && echo "[!] $@" >> "$log_file" ;;
"-d") shift && echo "[$(date | awk '{print $4}')] $@" >> "$log_file" ;;
"-c") rm -f "$log_file" ;;
*) shift && echo "$@" >> "$log_file" ;;
esac
}
home_pkgname_fetcher()
{
echo "$(pm resolve-activity -a android.intent.action.MAIN -c android.intent.category.HOME | grep packageName | head -n 1 | cut -d= -f2)"
}
ime_pkgname_fetcher()
{
echo "$(ime list | grep packageName | head -n 1 | cut -d= -f2)"
}
kill_svc()
{
killall -q -9 "$1"
stop "$1"
}
pid_fetcher()
{
echo "$(ps -Ao pid,args | grep -i -E "$1" | awk '{print $1}')"
}
change_task_cgroup()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
echo "$tid" > "/dev/$3/$2/tasks"
done
done
}
change_proc_cgroup()
{
for pid in $(pid_fetcher "$1"); do
echo $pid > "/dev/$3/$2/cgroup.procs"
done
}
change_thread_cgroup()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
comm="$(cat "/proc/$pid/task/$tid/comm")"
[[ "$(echo "$comm" | grep -i -E "$2")" != "" ]] && echo "$tid" > "/dev/$4/$3/tasks"
done
done
}
change_main_thread_cgroup()
{
for pid in $(pid_fetcher "$1"); do
echo $pid > "/dev/$3/$2/tasks"
done
}
change_task_affinity()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
taskset -p "$2" "$tid"
done
done
}
change_thread_affinity()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
comm="$(cat "/proc/$pid/task/$tid/comm")"
[[ "$(echo "$comm" | grep -i -E "$2")" != "" ]] && taskset -p "$3" "$tid"
done
done
}
change_task_nice()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
renice -n "$2" -p "$tid"
done
done
}
change_thread_nice()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
comm="$(cat "/proc/$pid/task/$tid/comm")"
[[ "$(echo "$comm" | grep -i -E "$2")" != "" ]] && renice -n "$3" -p "$temp_tid"
done
done
}
change_task_rt()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
chrt -f -p "$2" "$tid"
done
done
}
change_thread_rt()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
comm="$(cat "/proc/$pid/task/$tid/comm")"
[[ "$(echo "$comm" | grep -i -E "$2")" != "" ]] && chrt -f -p "$3" "$tid"
done
done
}
change_task_high_prio()
{
change_task_nice "$1" "-15"
}
change_thread_high_prio()
{
change_thread_nice "$1" "$2" "-15"
}
unpin_thread()
{
change_thread_cgroup "$1" "$2" "" "cpuset"
}
# Less power cores (avoiding big cluster wakeups)
pin_thread_on_pwr()
{
change_thread_cgroup "$1" "$2" "background" "cpuset"
change_thread_affinity "$1" "$2" "0f"
}
# Power-efficient cores
pin_thread_on_mid()
{
unpin_thread "$1" "$2"
change_thread_affinity "$1" "$2" "7f"
}
# Performance cores
pin_thread_on_perf()
{
unpin_thread "$1" "$2"
change_thread_affinity "$1" "$2" "ff"
}
unpin_proc()
{
change_task_cgroup "$1" "" "cpuset"
}
# Less power cores (avoiding big cluster wakeups)
pin_proc_on_pwr()
{
change_task_cgroup "$1" "background" "cpuset"
change_task_affinity "$1" "0f"
}
# Power-efficient cores
pin_proc_on_mid()
{
unpin_proc "$1"
change_task_affinity "$1" "7f"
}
# Performance cores
pin_proc_on_perf()
{
unpin_proc "$1"
change_task_affinity "$1" "ff"
}
set_task_on_prior()
{
pin_proc_on_perf "$1"
change_task_nice "$1" "-20"
}
set_thread_on_prior()
{
pin_thread_on_perf "$1" "$2"
change_thread_nice "$1" "$2" "-20"
}
###############################
# AOSP Enhancer Functions
###############################
# Allow sched boosting on top-app tasks (line 185)
# Turn off printk logging and scheduler stats (line 186-188)
# Disable swap readahead for swap devices (line 189)
# Update /proc/stat every 20 sec to reduce jitter (line 190)
kernel_opt()
{
write "/proc/sys/kernel/sched_min_task_util_for_colocation" "0"
write "/proc/sys/kernel/printk" "0 0 0 0"
write "/proc/sys/kernel/printk_devkmsg" "off"
write "/proc/sys/kernel/sched_schedstats" "0"
write "/proc/sys/vm/page-cluster" "0"
write "/proc/sys/vm/stat_interval" "20"
}
# Apply proper I/O scheduler, disable I/O stats, use group_idle in I/O scheduling and some misc. tweaks
io_opt()
{
for queue in /sys/block/*/queue/; do
avail_scheds="$(cat "${queue}scheduler")"
for sched in cfq noop kyber bfq mq-deadline deadline none; do
if [[ "$avail_scheds" == *"$sched"* ]]; then
write "${queue}scheduler" "$sched"
break
fi
done
write "${queue}iostats" "0"
write "${queue}add_random" "0"
write "${queue}io_poll" "0"
write "${queue}iosched/group_idle" "1"
write "${queue}iosched/slice_idle" "0"
done
}
# Core android process (line 224-230)
# Unspecialized app pool (line 232)
# Important display & graphics related process (234-240)
# Core services container i.e activity manager, power manager, input reader & dispatcher etc. (242-249)
# Less necessary threads (line 244-245)
# Composer thread i.e Hardware compose vsync & uevent (line 251-255)
# Important manager/helper processes and cpu & gpu related workers & services (line 257-259)
# SystemUI (line 261-264)
# Home (line 266-269)
# Input Method Editor (line 271-274)
# Pin various init & hardware related processes in background to reduce unnecessary wakeup of big cluster (line 276)
# To remember: Don't modify binders state because they are inter-process communicators
priority_opt()
{
for i in zygote; do
set_thread_on_prior "$i" "main"
pin_thread_on_pwr "$i" "HeapTaskDaemon"
pin_thread_on_pwr "$i" "Finalizer"
pin_thread_on_pwr "$i" "ReferenceQueue"
pin_thread_on_pwr "$i" "Jit"
done
set_thread_on_prior "usap" "usap"
for i in surfaceflinger; do
set_thread_on_prior "$i" "surfaceflinger"
set_thread_on_prior "$i" "sf"
set_thread_on_prior "$i" "ImageManager"
pin_thread_on_pwr "$i" "app"
pin_thread_on_pwr "$i" "DispSync"
done
for i in system_server; do
for thread in system_server ActivityManager PowerManager RenderThread Input android.io android.display android.ui android.anim; do set_thread_on_prior "$i" "$thread"; done
for thread in HeapTaskDaemon Finalizer ReferenceQueue Jit LazyTaskWriter GrallocUpload SyncManager SyncHandler; do pin_thread_on_pwr "$i" "$thread"; done
for thread in TaskSnapshot OomAdjuster StatsCompanion batterystats NetworkStats GraphicsStats; do
pin_thread_on_pwr "$i" "$thread"
change_thread_nice "$i" "$thread" "7"
done
done
for i in composer; do
set_thread_on_prior "$i" "composer"
set_thread_on_prior "$i" "hwc"
pin_thread_on_pwr "$i" "IdleInvalidator"
done
for i in khelper servicemanager kgsl_worker kgsl_devfreq_wq devfreq_wq gpuservice allocator; do set_task_on_prior "$i"; done
set_thread_on_prior "storaged" "storaged"
for i in com.android.systemui; do
for thread in systemui SysUi hwui recents.fg RenderThread Keyboard; do set_thread_on_prior "$i" "$thread"; done
for thread in HeapTaskDaemon Finalizer ReferenceQueue Jit; do pin_thread_on_pwr "$i" "$thread"; done
done
for i in $(home_pkgname_fetcher); do
for thread in launcher hwui RenderThread UiThread; do set_thread_on_prior "$i" "$thread"; done
for thread in HeapTaskDaemon Finalizer ReferenceQueue Jit GrallocUpload file-logger; do pin_thread_on_pwr "$i" "$thread"; done
done
for i in $(ime_pkgname_fetcher); do
for thread in latin hwui RenderThread InputLogic ExecutorUtils; do set_thread_on_prior "$i" "$thread"; done
for thread in HeapTaskDaemon Finalizer ReferenceQueue Jit; do pin_thread_on_pwr "$i" "$thread"; done
done
for i in ueventd netd main_thread rx_thread dsp_send_thread hif_thread aal_sof kfps vdec_ipi_recv disp_feature pp_event crtc_event crtc_commit; do pin_proc_on_pwr "$i"; done
}
# Disable AI preload feature & various debugging services
system_settings_opt()
{
[[ "$(settings get system ai_preload_user_state)" != "null" ]] && settings put system ai_preload_user_state 0
settings put system anr_debugging_mechanism 0
cmd looper_stats disable
cmd dropbox set-rate-limit 10000
cmd appops set com.android.backupconfirm RUN_IN_BACKGROUND ignore
cmd appops set com.google.android.setupwizard RUN_IN_BACKGROUND ignore
cmd appops set com.android.printservice.recommendation RUN_IN_BACKGROUND ignore
cmd appops set com.android.onetimeinitializer RUN_IN_BACKGROUND ignore
cmd appops set com.qualcomm.qti.perfdump RUN_IN_BACKGROUND ignore
}
# Use profile-guided compilation to compile package of important system apps
dex_opt()
{
for app_list in $(home_pkgname_fetcher) com.android.systemui com.android.settings; do
cmd package compile -m speed-profile "$app_list"
done
}
# Stop unnecessary daemons & services
misc_opt()
{
for i in statsd traced cnss_diag vendor.cnss_diag tcpdump vendor.tcpdump ipacm-diag vendor.ipacm-diag ramdump subsystem_ramdump charge_logger; do
kill_svc "$i"
done
}
# Tweak zygote preforking, I/O readahead and debugging related props
prop_opt()
{
resetprop persist.sys.usap_pool_enabled true
resetprop persist.device_config.runtime_native.usap_pool_enabled true
resetprop ro.iorapd.enable true
resetprop vidc.debug.level 0
resetprop vendor.vidc.debug.level 0
resetprop vendor.swvdec.log.level 0
resetprop persist.radio.ramdump 0
resetprop ro.lmk.debug false
resetprop ro.lmk.log_stats false
resetprop persist.sys.lmk.reportkills false
resetprop dalvik.vm.minidebuginfo false
resetprop dalvik.vm.dex2oat-minidebuginfo false
resetprop ro.statsd.enable false
resetprop persist.vendor.dpm.loglevel 0
resetprop persist.vendor.dpmhalservice.loglevel 0
resetprop persist.debug.sf.statistics 0
resetprop debug.sf.enable_egl_image_tracker 0
resetprop debug.mdpcomp.logs 0
resetprop persist.ims.disableDebugLogs 1
resetprop persist.ims.disableADBLogs 1
resetprop persist.ims.disableQXDMLogs 1
resetprop persist.ims.disableIMSLogs 1
}
###############################
# Main
###############################
apply_all()
{
sync
sync
sync
xlog -c
xlog -i "Started AOSP Enhancer Tweaks at $(date)"
xlog ""
kernel_opt
xlog -d "Applied universal kernel tweaks"
io_opt
xlog -d "Tweaked I/O parameters"
priority_opt
xlog -d "Optimized priority of system processes"
system_settings_opt
xlog -d "Enhanced settings provider tunables"
dex_opt
xlog -d "Compiled dalvik data of important system apps"
misc_opt
xlog -d "Applied misc. system tweaks"
prop_opt
xlog -d "Tweaked system properties"
xlog ""
xlog -i "Completed AOSP Enhancer Tweaks at $(date)"
}
apply_all &> /dev/null
# Exit as successful
exit 0
#!/system/bin/sh
# AOSP Enhancer
# Author: LOOPER (iamlooper @ github)
# Todo: If you do changes in code then make sure to change referring line numbers to code in comments respectively.
###############################
# Required Tools
###############################
# $1:filepath $2:value
write()
{
for p in $1; do
[[ -f "$p" ]] && {
chmod +w "$p" 2> /dev/null
echo "$2" > "$p"
}
done
}
xlog()
{
log_file="/storage/emulated/0/Android/aosp_enhancer.txt"
case "$1" in
"-i") shift && echo "[*] $@" >> "$log_file" ;;
"-e") shift && echo "[!] $@" >> "$log_file" ;;
"-d") shift && echo "[$(date | awk '{print $4}')] $@" >> "$log_file" ;;
"-c") rm -f "$log_file" ;;
*) shift && echo "$@" >> "$log_file" ;;
esac
}
home_pkgname_fetcher()
{
echo "$(pm resolve-activity -a android.intent.action.MAIN -c android.intent.category.HOME | grep packageName | head -n 1 | cut -d= -f2)"
}
ime_pkgname_fetcher()
{
echo "$(ime list | grep packageName | head -n 1 | cut -d= -f2)"
}
kill_svc()
{
killall -q -9 "$1"
stop "$1"
}
pid_fetcher()
{
echo "$(ps -Ao pid,args | grep -i -E "$1" | awk '{print $1}')"
}
change_task_cgroup()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
echo "$tid" > "/dev/$3/$2/tasks"
done
done
}
change_proc_cgroup()
{
for pid in $(pid_fetcher "$1"); do
echo $pid > "/dev/$3/$2/cgroup.procs"
done
}
change_thread_cgroup()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
comm="$(cat "/proc/$pid/task/$tid/comm")"
[[ "$(echo "$comm" | grep -i -E "$2")" != "" ]] && echo "$tid" > "/dev/$4/$3/tasks"
done
done
}
change_main_thread_cgroup()
{
for pid in $(pid_fetcher "$1"); do
echo $pid > "/dev/$3/$2/tasks"
done
}
change_task_affinity()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
taskset -p "$2" "$tid"
done
done
}
change_thread_affinity()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
comm="$(cat "/proc/$pid/task/$tid/comm")"
[[ "$(echo "$comm" | grep -i -E "$2")" != "" ]] && taskset -p "$3" "$tid"
done
done
}
change_task_nice()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
renice -n "$2" -p "$tid"
done
done
}
change_thread_nice()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
comm="$(cat "/proc/$pid/task/$tid/comm")"
[[ "$(echo "$comm" | grep -i -E "$2")" != "" ]] && renice -n "$3" -p "$temp_tid"
done
done
}
change_task_rt()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
chrt -f -p "$2" "$tid"
done
done
}
change_thread_rt()
{
for pid in $(pid_fetcher "$1"); do
for tid in $(ls "/proc/$pid/task/"); do
comm="$(cat "/proc/$pid/task/$tid/comm")"
[[ "$(echo "$comm" | grep -i -E "$2")" != "" ]] && chrt -f -p "$3" "$tid"
done
done
}
change_task_high_prio()
{
change_task_nice "$1" "-15"
}
change_thread_high_prio()
{
change_thread_nice "$1" "$2" "-15"
}
unpin_thread()
{
change_thread_cgroup "$1" "$2" "" "cpuset"
}
# Less power cores (avoiding big cluster wakeups)
pin_thread_on_pwr()
{
change_thread_cgroup "$1" "$2" "background" "cpuset"
change_thread_affinity "$1" "$2" "0f"
}
# Power-efficient cores
pin_thread_on_mid()
{
unpin_thread "$1" "$2"
change_thread_affinity "$1" "$2" "7f"
}
# Performance cores
pin_thread_on_perf()
{
unpin_thread "$1" "$2"
change_thread_affinity "$1" "$2" "ff"
}
unpin_proc()
{
change_task_cgroup "$1" "" "cpuset"
}
# Less power cores (avoiding big cluster wakeups)
pin_proc_on_pwr()
{
change_task_cgroup "$1" "background" "cpuset"
change_task_affinity "$1" "0f"
}
# Power-efficient cores
pin_proc_on_mid()
{
unpin_proc "$1"
change_task_affinity "$1" "7f"
}
# Performance cores
pin_proc_on_perf()
{
unpin_proc "$1"
change_task_affinity "$1" "ff"
}
set_task_on_prior()
{
pin_proc_on_perf "$1"
change_task_nice "$1" "-20"
}
set_thread_on_prior()
{
pin_thread_on_perf "$1" "$2"
change_thread_nice "$1" "$2" "-20"
}
###############################
# AOSP Enhancer Functions
###############################
# Allow sched boosting on top-app tasks (line 185)
# Turn off printk logging and scheduler stats (line 186-188)
# Disable swap readahead for swap devices (line 189)
# Update /proc/stat every 20 sec to reduce jitter (line 190)
kernel_opt()
{
write "/proc/sys/kernel/sched_min_task_util_for_colocation" "0"
write "/proc/sys/kernel/printk" "0 0 0 0"
write "/proc/sys/kernel/printk_devkmsg" "off"
write "/proc/sys/kernel/sched_schedstats" "0"
write "/proc/sys/vm/page-cluster" "0"
write "/proc/sys/vm/stat_interval" "20"
}
# Apply proper I/O scheduler, disable I/O stats, use group_idle in I/O scheduling and some misc. tweaks
io_opt()
{
for queue in /sys/block/*/queue/; do
avail_scheds="$(cat "${queue}scheduler")"
for sched in cfq noop kyber bfq mq-deadline deadline none; do
if [[ "$avail_scheds" == *"$sched"* ]]; then
write "${queue}scheduler" "$sched"
break
fi
done
write "${queue}iostats" "0"
write "${queue}add_random" "0"
write "${queue}io_poll" "0"
write "${queue}iosched/group_idle" "1"
write "${queue}iosched/slice_idle" "0"
done
}
# Core android process (line 224-230)
# Unspecialized app pool (line 232)
# Important display & graphics related process (234-240)
# Core services container i.e activity manager, power manager, input reader & dispatcher etc. (242-249)
# Less necessary threads (line 244-245)
# Composer thread i.e Hardware compose vsync & uevent (line 251-255)
# Important manager/helper processes and cpu & gpu related workers & services (line 257-259)
# SystemUI (line 261-264)
# Home (line 266-269)
# Input Method Editor (line 271-274)
# Pin various init & hardware related processes in background to reduce unnecessary wakeup of big cluster (line 276)
# To remember: Don't modify binders state because they are inter-process communicators
priority_opt()
{
for i in zygote; do
set_thread_on_prior "$i" "main"
pin_thread_on_pwr "$i" "HeapTaskDaemon"
pin_thread_on_pwr "$i" "Finalizer"
pin_thread_on_pwr "$i" "ReferenceQueue"
pin_thread_on_pwr "$i" "Jit"
done
set_thread_on_prior "usap" "usap"
for i in surfaceflinger; do
set_thread_on_prior "$i" "surfaceflinger"
set_thread_on_prior "$i" "sf"
set_thread_on_prior "$i" "ImageManager"
pin_thread_on_pwr "$i" "app"
pin_thread_on_pwr "$i" "DispSync"
done
for i in system_server; do
for thread in system_server ActivityManager PowerManager RenderThread Input android.io android.display android.ui android.anim; do set_thread_on_prior "$i" "$thread"; done
for thread in HeapTaskDaemon Finalizer ReferenceQueue Jit LazyTaskWriter GrallocUpload SyncManager SyncHandler; do pin_thread_on_pwr "$i" "$thread"; done
for thread in TaskSnapshot OomAdjuster StatsCompanion batterystats NetworkStats GraphicsStats; do
pin_thread_on_pwr "$i" "$thread"
change_thread_nice "$i" "$thread" "7"
done
done
for i in composer; do
set_thread_on_prior "$i" "composer"
set_thread_on_prior "$i" "hwc"
pin_thread_on_pwr "$i" "IdleInvalidator"
done
for i in khelper servicemanager kgsl_worker kgsl_devfreq_wq devfreq_wq gpuservice allocator; do set_task_on_prior "$i"; done
set_thread_on_prior "storaged" "storaged"
for i in com.android.systemui; do
for thread in systemui SysUi hwui recents.fg RenderThread Keyboard; do set_thread_on_prior "$i" "$thread"; done
for thread in HeapTaskDaemon Finalizer ReferenceQueue Jit; do pin_thread_on_pwr "$i" "$thread"; done
done
for i in $(home_pkgname_fetcher); do
for thread in launcher hwui RenderThread UiThread; do set_thread_on_prior "$i" "$thread"; done
for thread in HeapTaskDaemon Finalizer ReferenceQueue Jit GrallocUpload file-logger; do pin_thread_on_pwr "$i" "$thread"; done
done
for i in $(ime_pkgname_fetcher); do
for thread in latin hwui RenderThread InputLogic ExecutorUtils; do set_thread_on_prior "$i" "$thread"; done
for thread in HeapTaskDaemon Finalizer ReferenceQueue Jit; do pin_thread_on_pwr "$i" "$thread"; done
done
for i in ueventd netd main_thread rx_thread dsp_send_thread hif_thread aal_sof kfps vdec_ipi_recv disp_feature pp_event crtc_event crtc_commit; do pin_proc_on_pwr "$i"; done
}
# Disable AI preload feature & various debugging services
system_settings_opt()
{
[[ "$(settings get system ai_preload_user_state)" != "null" ]] && settings put system ai_preload_user_state 0
settings put system anr_debugging_mechanism 0
cmd looper_stats disable
cmd dropbox set-rate-limit 10000
cmd appops set com.android.backupconfirm RUN_IN_BACKGROUND ignore
cmd appops set com.google.android.setupwizard RUN_IN_BACKGROUND ignore
cmd appops set com.android.printservice.recommendation RUN_IN_BACKGROUND ignore
cmd appops set com.android.onetimeinitializer RUN_IN_BACKGROUND ignore
cmd appops set com.qualcomm.qti.perfdump RUN_IN_BACKGROUND ignore
}
# Use profile-guided compilation to compile package of important system apps
dex_opt()
{
for app_list in $(home_pkgname_fetcher) com.android.systemui com.android.settings; do
cmd package compile -m speed-profile "$app_list"
done
}
# Stop unnecessary daemons & services
misc_opt()
{
for i in statsd traced cnss_diag vendor.cnss_diag tcpdump vendor.tcpdump ipacm-diag vendor.ipacm-diag ramdump subsystem_ramdump charge_logger; do
kill_svc "$i"
done
}
# Tweak zygote preforking, I/O readahead and debugging related props
prop_opt()
{
resetprop persist.sys.usap_pool_enabled true
resetprop persist.device_config.runtime_native.usap_pool_enabled true
resetprop ro.iorapd.enable true
resetprop vidc.debug.level 0
resetprop vendor.vidc.debug.level 0
resetprop vendor.swvdec.log.level 0
resetprop persist.radio.ramdump 0
resetprop ro.lmk.debug false
resetprop ro.lmk.log_stats false
resetprop persist.sys.lmk.reportkills false
resetprop dalvik.vm.minidebuginfo false
resetprop dalvik.vm.dex2oat-minidebuginfo false
resetprop ro.statsd.enable false
resetprop persist.vendor.dpm.loglevel 0
resetprop persist.vendor.dpmhalservice.loglevel 0
resetprop persist.debug.sf.statistics 0
resetprop debug.sf.enable_egl_image_tracker 0
resetprop debug.mdpcomp.logs 0
resetprop persist.ims.disableDebugLogs 1
resetprop persist.ims.disableADBLogs 1
resetprop persist.ims.disableQXDMLogs 1
resetprop persist.ims.disableIMSLogs 1
}
###############################
# Main
###############################
apply_all()
{
sync
sync
sync
xlog -c
xlog -i "Started AOSP Enhancer Tweaks at $(date)"
xlog ""
kernel_opt
xlog -d "Applied universal kernel tweaks"
io_opt
xlog -d "Tweaked I/O parameters"
priority_opt
xlog -d "Optimized priority of system processes"
system_settings_opt
xlog -d "Enhanced settings provider tunables"
dex_opt
xlog -d "Compiled dalvik data of important system apps"
misc_opt
xlog -d "Applied misc. system tweaks"
prop_opt
xlog -d "Tweaked system properties"
xlog ""
xlog -i "Completed AOSP Enhancer Tweaks at $(date)"
}
apply_all &> /dev/null
# Exit as successful
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment