Sparrow_AW2.0 enabling all cores + GPU boost

Search This thread

LeeonLee

Member
Nov 9, 2009
32
28
Hello, I decided to publish some guide + scripts I already use for a while, which allows you to use all CPU cores and boost GPU performance.
Battery consumption using this configuration surprisingly does not change much or even did not change at all, with default as well with new config my watch stays alive for ~32h with daily usage.

Some theory:
Sparrow is sold with Qualcomm Snapdragon 400 1.2GHz, which is 4 core CPU. ASUS AW2.0 official kernel though supports only 600MHz and 787MHz, as Asus probably thinks this is good balance between battery life and performance.
GPU is Adreno 302/305, which is capable running up to 450MHz, which is also supported by ASUS AW2.0 kernel.

Where is the catch?
During boot there are all four CPU cores enabled, however there is post-init script, disabling two of those and setting frequency as fixed 738MHz with performance governor (no frequency scaling). GPU is set to fix 200MHz:

/system/bin/init.asus.post_boot.sh
Code:
#!/system/bin/sh

PATH=/system/bin

cd /sys
echo 4 > module/lpm_levels/enable_low_power/l2
echo 1 > module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu0/power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu1/power_collapse/idle_enabled
#Put all other cores offline
echo 0 > devices/system/cpu/cpu2/online
echo 0 > devices/system/cpu/cpu3/online
governor="performance"
scaling_min_freq="787200"
if [[ `grep "oem_perf_change" /proc/cmdline` ]];then
    if [[ `grep "oem_perf_on" /proc/cmdline` ]];then
        oem_perf_stats="1"
    else
        oem_perf_stats="0"
    fi
    echo -n $oem_perf_stats > /factory/oem_perf_stats
fi
echo $governor > devices/system/cpu/cpu0/cpufreq/scaling_governor
echo $governor > devices/system/cpu/cpu1/cpufreq/scaling_governor
#below ondemand parameters can be tuned
echo 50000 > devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 90 > devices/system/cpu/cpufreq/ondemand/up_threshold
echo 1 > devices/system/cpu/cpufreq/ondemand/io_is_busy
echo 2 > devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential
echo 70 > devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
echo 787200 > devices/system/cpu/cpufreq/ondemand/optimal_freq
echo 300000 > devices/system/cpu/cpufreq/ondemand/sync_freq
echo 80 > devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
echo $scaling_min_freq > devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $scaling_min_freq > devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo 787200 > devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 787200 > devices/system/cpu/cpu1/cpufreq/scaling_max_freq
#Below entries are to set the GPU frequency and DCVS governor
echo 200000000 > class/kgsl/kgsl-3d0/devfreq/max_freq
echo 200000000 > class/kgsl/kgsl-3d0/devfreq/min_freq
echo performance > class/kgsl/kgsl-3d0/devfreq/governor
chown -h system devices/system/cpu/cpu[0-1]/cpufreq/scaling_max_freq
chown -h system devices/system/cpu/cpu[0-1]/cpufreq/scaling_min_freq
chown -h root.system devices/system/cpu/cpu[1-3]/online
chmod 664 devices/system/cpu/cpu[1-3]/online

It is indeed required just to alter this script and you can enable all 4 cores with "ondemand" governor, scaling 600-738MHz and GPU scaling 200-450MHz using "msm-adreno-tz" governor:
(and this requires root of course)

Code:
#!/system/bin/sh

PATH=/system/bin

cd /sys
echo 4 > module/lpm_levels/enable_low_power/l2
echo 1 > module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu0/power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu1/power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu2/power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu3/power_collapse/idle_enabled
governor="ondemand"
scaling_min_freq="600000"
if [[ `grep "oem_perf_change" /proc/cmdline` ]];then
    if [[ `grep "oem_perf_on" /proc/cmdline` ]];then
        oem_perf_stats="1"
    else
        oem_perf_stats="0"
    fi
    echo -n $oem_perf_stats > /factory/oem_perf_stats
fi
echo $governor > devices/system/cpu/cpu0/cpufreq/scaling_governor
echo $governor > devices/system/cpu/cpu1/cpufreq/scaling_governor
echo $governor > devices/system/cpu/cpu2/cpufreq/scaling_governor
echo $governor > devices/system/cpu/cpu3/cpufreq/scaling_governor
#below ondemand parameters can be tuned
echo 50000 > devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 90 > devices/system/cpu/cpufreq/ondemand/up_threshold
echo 1 > devices/system/cpu/cpufreq/ondemand/io_is_busy
echo 2 > devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential
echo 70 > devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
echo 787200 > devices/system/cpu/cpufreq/ondemand/optimal_freq
echo 300000 > devices/system/cpu/cpufreq/ondemand/sync_freq
echo 80 > devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
echo $scaling_min_freq > devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $scaling_min_freq > devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo $scaling_min_freq > devices/system/cpu/cpu2/cpufreq/scaling_min_freq
echo $scaling_min_freq > devices/system/cpu/cpu3/cpufreq/scaling_min_freq
echo 787200 > devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 787200 > devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo 787200 > devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo 787200 > devices/system/cpu/cpu3/cpufreq/scaling_max_freq
#Below entries are to set the GPU frequency and DCVS governor
echo 450000000 > class/kgsl/kgsl-3d0/devfreq/max_freq
echo 200000000 > class/kgsl/kgsl-3d0/devfreq/min_freq
echo msm-adreno-tz > class/kgsl/kgsl-3d0/devfreq/governor
chown -h system devices/system/cpu/cpu[0-3]/cpufreq/scaling_max_freq
chown -h system devices/system/cpu/cpu[0-3]/cpufreq/scaling_min_freq
chown -h root.system devices/system/cpu/cpu[0-3]/online
chmod 664 devices/system/cpu/cpu[0-3]/online

(both files also attached to this post)

To exchange files in your watch, you can easily use following bash script in linux:

First push desired file into sdcard and go to ADB shell:
Code:
adb push init.asus.post_boot.sh /sdcard/
adb shell

In ADB shell remount system to RW, replace the file and fix privileges, than remount system back to RO:
Code:
su
mount -o rw,remount /system
mv /sdcard/init.asus.post_boot.sh /system/bin/
chown root:shell /system/bin/init.asus.post_boot.sh
chmod 755 /system/bin/init.asus.post_boot.sh
mount -o ro,remount /system

Update 2018/09/05:
In case you want to experiment, I'm also sending "full_power" script, setting all cores to max frequency and performance governor. There should be no issues, except probably less battery life. Just test yourself, how battery life is affected if it is affected at all. Just unpack the zip file, rename the sh script from init.asus.post_boot_full_power.sh to init.asus.post_boot.sh. Rest of the procedure is still the same.
Without kernel sources, this is probably the maximum performance you can get from the watch. Obtaining kernel sources we might get up still twice of current maximum, as the HW is there, but locked on kernel level.
 

Attachments

  • init.asus.post_boot.zip
    1.7 KB · Views: 1,239
  • init.asus.post_boot_full_power.sh.zip
    737 bytes · Views: 764
Last edited:

CVertigo1

Senior Member
May 20, 2015
1,111
676
Richmond, VA
Google Pixel 6 Pro
I just swapped the files and I'll give this a try over the next few days. It would be awesome to destroy lag without needing a kernel tweak app to make it happen. You are the man!

Update: I followed your directions, then I wiped cache and dalvik in TWRP. I have only used the watch for a few minutes with this tweak and it is noticeably faster/smoother already. Text messages display lightning fast after being received on the phone. I'm currently on WiFi in my office. The times I notice most lag on my watch is when I'm on 4G, have music playing, and get a call. The phone may ring for 5-10 seconds before the watch displays. I'm excited to see how helpful this tweak is under those conditions. I'll know later today and keep you posted.
 
Last edited:

LeeonLee

Member
Nov 9, 2009
32
28
Glad to hear that @CVertigo1. This is just simple SW enablement of things already present in kernel, so even no cache cleans are required. You can play with it on the go even without watch restart.

Amazing will be getting some kernel with much more CPU freq. steps, like 300-768 or even to 1.2GHz (yes, our chip is capable doing so, it is just not enabled in kernel). With proper governor battery will be still ok, resting CPU most of the time in low clocks. It is pity we have great HW, but it is taken out from us with stock kernel.
 

LeeonLee

Member
Nov 9, 2009
32
28

CVertigo1

Senior Member
May 20, 2015
1,111
676
Richmond, VA
Google Pixel 6 Pro
That is the latest kernel source for 1.5. They have not released their source for 2.0, nor any firmware for 2.0. I have contacted Asus about it multiple times and none of their reps have any idea what I'm talking about.
 

LeeonLee

Member
Nov 9, 2009
32
28
That is the latest kernel source for 1.5. They have not released their source for 2.0, nor any firmware for 2.0. I have contacted Asus about it multiple times and none of their reps have any idea what I'm talking about.

Ah, I see :( I thought 2017/05/12 stated as a release day was after AW20 concluding this had to be the new one. Pity.
 

MihaiSG

Senior Member
Feb 21, 2015
378
68
You must boot in the TWRP recovery. You need the ADB drivers installed on your computer and is easier to use your computer for this.
 

LeeonLee

Member
Nov 9, 2009
32
28
'the command can be used in adb in windows or are different? watch must be in recovery or bootloader? wrote a step by step for noob guide please

Actually it is quite simple, what you need:
* in case you use Windows, you need drivers for android (not needed with Linux)
* working ADB
* rooted watch

Then just connect normally booted watch and in command line (Windows) or terminal (Linux), execute:

Code:
adb push init.asus.post_boot.sh /sdcard/
adb shell

Second command above will enter adb shell, when you are in, just copy paste and execute following:

Code:
su
mount -o rw,remount /system
mv /sdcard/init.asus.post_boot.sh /system/bin/
chown root:shell /system/bin/init.asus.post_boot.sh
chmod 755 /system/bin/init.asus.post_boot.sh
mount -o ro,remount /system
 
Last edited:

mastermoon

Senior Member
Actually it is quite simple, what you need:
* in case you use Windows, you need drivers for android (not needed with Linux)
* working ADB
* rooted watch

Then just connect normally booted watch and in command line (Windows) or terminal (Linux), execute:

Code:
adb push init.asus.post_boot.sh /sdcard/
adb shell

Second command above will enter adb shell, when you are in, just copy paste and execute following:

Code:
su
mount -o rw,remount /system
mv /sdcard/init.asus.post_boot.sh /system/bin/
chown root:shell /system/bin/init.asus.post_boot.sh
chmod 755 /system/bin/init.asus.post_boot.sh
mount -o ro,remount /system

yeah worked perfectly... after 9 month the zenwatch is back on my wrist....

---------- Post added at 05:31 PM ---------- Previous post was at 05:29 PM ----------

Actually it is quite simple, what you need:
* in case you use Windows, you need drivers for android (not needed with Linux)
* working ADB
* rooted watch

Then just connect normally booted watch and in command line (Windows) or terminal (Linux), execute:

Code:
adb push init.asus.post_boot.sh /sdcard/
adb shell

Second command above will enter adb shell, when you are in, just copy paste and execute following:

Code:
su
mount -o rw,remount /system
mv /sdcard/init.asus.post_boot.sh /system/bin/
chown root:shell /system/bin/init.asus.post_boot.sh
chmod 755 /system/bin/init.asus.post_boot.sh
mount -o ro,remount /system



worked perfectly.... after 9 months zenwatch is back on my wrist
 

Namelocked

Member
Mar 7, 2011
8
1
Hey guys,

do i need to do it every time i booted up ?

And can i messure this Overclocking anywhere ?

Greetings
 

Top Liked Posts

  • There are no posts matching your filters.
  • 15
    Hello, I decided to publish some guide + scripts I already use for a while, which allows you to use all CPU cores and boost GPU performance.
    Battery consumption using this configuration surprisingly does not change much or even did not change at all, with default as well with new config my watch stays alive for ~32h with daily usage.

    Some theory:
    Sparrow is sold with Qualcomm Snapdragon 400 1.2GHz, which is 4 core CPU. ASUS AW2.0 official kernel though supports only 600MHz and 787MHz, as Asus probably thinks this is good balance between battery life and performance.
    GPU is Adreno 302/305, which is capable running up to 450MHz, which is also supported by ASUS AW2.0 kernel.

    Where is the catch?
    During boot there are all four CPU cores enabled, however there is post-init script, disabling two of those and setting frequency as fixed 738MHz with performance governor (no frequency scaling). GPU is set to fix 200MHz:

    /system/bin/init.asus.post_boot.sh
    Code:
    #!/system/bin/sh
    
    PATH=/system/bin
    
    cd /sys
    echo 4 > module/lpm_levels/enable_low_power/l2
    echo 1 > module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu0/power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu1/power_collapse/idle_enabled
    #Put all other cores offline
    echo 0 > devices/system/cpu/cpu2/online
    echo 0 > devices/system/cpu/cpu3/online
    governor="performance"
    scaling_min_freq="787200"
    if [[ `grep "oem_perf_change" /proc/cmdline` ]];then
        if [[ `grep "oem_perf_on" /proc/cmdline` ]];then
            oem_perf_stats="1"
        else
            oem_perf_stats="0"
        fi
        echo -n $oem_perf_stats > /factory/oem_perf_stats
    fi
    echo $governor > devices/system/cpu/cpu0/cpufreq/scaling_governor
    echo $governor > devices/system/cpu/cpu1/cpufreq/scaling_governor
    #below ondemand parameters can be tuned
    echo 50000 > devices/system/cpu/cpufreq/ondemand/sampling_rate
    echo 90 > devices/system/cpu/cpufreq/ondemand/up_threshold
    echo 1 > devices/system/cpu/cpufreq/ondemand/io_is_busy
    echo 2 > devices/system/cpu/cpufreq/ondemand/sampling_down_factor
    echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential
    echo 70 > devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
    echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
    echo 787200 > devices/system/cpu/cpufreq/ondemand/optimal_freq
    echo 300000 > devices/system/cpu/cpufreq/ondemand/sync_freq
    echo 80 > devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
    echo $scaling_min_freq > devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    echo $scaling_min_freq > devices/system/cpu/cpu1/cpufreq/scaling_min_freq
    echo 787200 > devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    echo 787200 > devices/system/cpu/cpu1/cpufreq/scaling_max_freq
    #Below entries are to set the GPU frequency and DCVS governor
    echo 200000000 > class/kgsl/kgsl-3d0/devfreq/max_freq
    echo 200000000 > class/kgsl/kgsl-3d0/devfreq/min_freq
    echo performance > class/kgsl/kgsl-3d0/devfreq/governor
    chown -h system devices/system/cpu/cpu[0-1]/cpufreq/scaling_max_freq
    chown -h system devices/system/cpu/cpu[0-1]/cpufreq/scaling_min_freq
    chown -h root.system devices/system/cpu/cpu[1-3]/online
    chmod 664 devices/system/cpu/cpu[1-3]/online

    It is indeed required just to alter this script and you can enable all 4 cores with "ondemand" governor, scaling 600-738MHz and GPU scaling 200-450MHz using "msm-adreno-tz" governor:
    (and this requires root of course)

    Code:
    #!/system/bin/sh
    
    PATH=/system/bin
    
    cd /sys
    echo 4 > module/lpm_levels/enable_low_power/l2
    echo 1 > module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
    echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu0/power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu1/power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu2/power_collapse/idle_enabled
    echo 1 > module/msm_pm/modes/cpu3/power_collapse/idle_enabled
    governor="ondemand"
    scaling_min_freq="600000"
    if [[ `grep "oem_perf_change" /proc/cmdline` ]];then
        if [[ `grep "oem_perf_on" /proc/cmdline` ]];then
            oem_perf_stats="1"
        else
            oem_perf_stats="0"
        fi
        echo -n $oem_perf_stats > /factory/oem_perf_stats
    fi
    echo $governor > devices/system/cpu/cpu0/cpufreq/scaling_governor
    echo $governor > devices/system/cpu/cpu1/cpufreq/scaling_governor
    echo $governor > devices/system/cpu/cpu2/cpufreq/scaling_governor
    echo $governor > devices/system/cpu/cpu3/cpufreq/scaling_governor
    #below ondemand parameters can be tuned
    echo 50000 > devices/system/cpu/cpufreq/ondemand/sampling_rate
    echo 90 > devices/system/cpu/cpufreq/ondemand/up_threshold
    echo 1 > devices/system/cpu/cpufreq/ondemand/io_is_busy
    echo 2 > devices/system/cpu/cpufreq/ondemand/sampling_down_factor
    echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential
    echo 70 > devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
    echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
    echo 787200 > devices/system/cpu/cpufreq/ondemand/optimal_freq
    echo 300000 > devices/system/cpu/cpufreq/ondemand/sync_freq
    echo 80 > devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
    echo $scaling_min_freq > devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    echo $scaling_min_freq > devices/system/cpu/cpu1/cpufreq/scaling_min_freq
    echo $scaling_min_freq > devices/system/cpu/cpu2/cpufreq/scaling_min_freq
    echo $scaling_min_freq > devices/system/cpu/cpu3/cpufreq/scaling_min_freq
    echo 787200 > devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    echo 787200 > devices/system/cpu/cpu1/cpufreq/scaling_max_freq
    echo 787200 > devices/system/cpu/cpu2/cpufreq/scaling_max_freq
    echo 787200 > devices/system/cpu/cpu3/cpufreq/scaling_max_freq
    #Below entries are to set the GPU frequency and DCVS governor
    echo 450000000 > class/kgsl/kgsl-3d0/devfreq/max_freq
    echo 200000000 > class/kgsl/kgsl-3d0/devfreq/min_freq
    echo msm-adreno-tz > class/kgsl/kgsl-3d0/devfreq/governor
    chown -h system devices/system/cpu/cpu[0-3]/cpufreq/scaling_max_freq
    chown -h system devices/system/cpu/cpu[0-3]/cpufreq/scaling_min_freq
    chown -h root.system devices/system/cpu/cpu[0-3]/online
    chmod 664 devices/system/cpu/cpu[0-3]/online

    (both files also attached to this post)

    To exchange files in your watch, you can easily use following bash script in linux:

    First push desired file into sdcard and go to ADB shell:
    Code:
    adb push init.asus.post_boot.sh /sdcard/
    adb shell

    In ADB shell remount system to RW, replace the file and fix privileges, than remount system back to RO:
    Code:
    su
    mount -o rw,remount /system
    mv /sdcard/init.asus.post_boot.sh /system/bin/
    chown root:shell /system/bin/init.asus.post_boot.sh
    chmod 755 /system/bin/init.asus.post_boot.sh
    mount -o ro,remount /system

    Update 2018/09/05:
    In case you want to experiment, I'm also sending "full_power" script, setting all cores to max frequency and performance governor. There should be no issues, except probably less battery life. Just test yourself, how battery life is affected if it is affected at all. Just unpack the zip file, rename the sh script from init.asus.post_boot_full_power.sh to init.asus.post_boot.sh. Rest of the procedure is still the same.
    Without kernel sources, this is probably the maximum performance you can get from the watch. Obtaining kernel sources we might get up still twice of current maximum, as the HW is there, but locked on kernel level.
    5
    I added new script init.asus.post_boot_full_power.sh.zip into first post to boost all frequencies to max and disabled scaling at all (running performance governor everywhere), as I was really disturbed by some performance glitches even with 4 cores enabled.
    Now after half a day of usage I can tell the experience is even better, no lags at all and battery consumption is about 3.5% / hour during day, in night I assume like 2% / hour. That is for about 36h of watch with regular daily usage. If this is ok for you, you can try to copy that file into your watch, execute the script or simply restart the watch to apply those changes.
    Note, that you need to rename the file and replace the original one.
    2
    how can i check core, cpu speed etc... aida64 isn't compatible .. tnx..

    @LeeonLee Would it be alright if I included your tweak in my ROM? I'd obviously give you the mention for credit.

    Hello!
    Definitely yes, feel free to use it however you want. Looking forward for your ROM.
    2
    If I disconnect and reset ZenWatch will I need to do the procedures again?

    hi, change is permanent unless you reflash your rom
    2
    to thank

    Hello, I decided to publish some guide + scripts I already use for a while, which allows you to use all CPU cores and boost GPU performance.
    Battery consumption using this configuration surprisingly does not change much or even did not change at all, with default as well with new config my watch stays alive for ~32h with daily usage.

    Some theory:
    .....
    Dear friend.
    I am writing to you from a distant and mysterious Russia. Your message on this forum for me is like a glass of clean and cool water in a hot desert. I am the happy owner of this smart watch, and for a long time I experienced unpredictable notes of joy (sarcasm, you yourself knew how to slow the watch down to your patch) until I saw your message. Thank you so much for your work and what you have done. Yesterday I did everything that you wrote and finally the smart watch played with all the colors that were lost during the transition from AW 1.6 to AW 2.0.
    Once again I want to thank you very much and wish you good health.