1#!/bin/bash
2
3cpubase=/sys/devices/system/cpu
4gov=cpufreq/scaling_governor
5
6adb root
7adb wait-for-device
8thermal=$(adb shell "getprop persist.service.thermal")
9echo "thermal status: $thermal"
10if [ $thermal -eq 1 ]
11then
12    echo "Trying to setprop persist.service.thermal 0 and reboot"
13    adb shell "setprop persist.service.thermal 0"
14    adb reboot
15    adb wait-for-device
16    thermal=$(adb shell "getprop persist.service.thermal")
17    if [ $thermal -eq 1 ]
18    then
19        echo "thermal property is still 1. Abort."
20        exit -1
21    fi
22    echo "Successfully setup persist.service.thermal to 0"
23fi
24
25adb shell stop perfprod
26
27# cores
28# 1833000 1750000 1666000 1583000 1500000 1416000 1333000 1250000
29# 1166000 1083000 1000000 916000 833000 750000 666000 583000 500000
30
31cpu=0
32S=1166000
33while [ $((cpu < 3)) -eq 1 ]; do
34    echo "Setting cpu ${cpu} & $(($cpu + 1)) cluster to $S hz"
35    # cpu0/online doesn't exist, because you can't turned it off, so ignore results of this command
36    adb shell "echo 1 > $cpubase/cpu${cpu}/online" &> /dev/null
37    adb shell "echo userspace > $cpubase/cpu${cpu}/$gov"
38    adb shell "echo $S > $cpubase/cpu${cpu}/cpufreq/scaling_max_freq"
39    adb shell "echo $S > $cpubase/cpu${cpu}/cpufreq/scaling_min_freq"
40    adb shell "echo $S > $cpubase/cpu${cpu}/cpufreq/scaling_setspeed"
41    cpu=$(($cpu + 2))
42done
43
44#/sys/class/devfreq/dfrgx/available_frequencies is empty, so set to min
45echo "performance mode, 457 MHz"
46adb shell "echo performance > /sys/class/devfreq/dfrgx/governor"
47adb shell "echo 457000 > /sys/class/devfreq/dfrgx/min_freq"
48adb shell "echo 457000 > /sys/class/devfreq/dfrgx/max_freq"
49