[ASUS ROG Phone 3 ROMs, Kernels, Recoveries, & Othe] Freak07:
Useful strategies on how to use this Mod

Short overview of the ROG Phone 3´s SoC:

The ROG Phone 3´s SoC is the SD865/+. The CPU is a little.Big.PRIME setup.

There are 8 cores

4x Cortex-A55 @ 1.80GHz --> the little cores. Very efficient cores using very little power. Not as performant as the other cores. (cores 0-3 translated to cpusets)

3x Cortex-A77 @ 2.42GHz --> The Big cores. The working horses of the SoC. Not as power-hungry as the PRIME-core, but still very performant (cores 4-6 translated to cpusets)

1x Cortex-A77 @ up to 3.09GHz --> The PRIME core. Power-hungry, extreme performance, peak performance, short bursts (core 7 translated to cpusets)

This architecture layout will become important later so keep it in mind.

General information explaining powerful Armoury Crate options:

This is a rough guideline. How to setup your own phone is up to you. I give examples you can try, but I encourage everyone to experiment. You might find that restricting CPU-Frequencies too severely in a specific app leads to stutters. Or that changing cpusets leads to slowdowns in this app as well. It´s about balance, your own preference and having the freedom to do what you want!

FPS tuning:

If you´re using video calling apps, navigation apps or streaming apps such as Netflix, Prime Video or Youtube you might want to reduce FPS to 60 or 90 in armoury crate.

This will save battery life for one part and will have better colours and gamma levels for video playback, especially on low brightness.

CPU-Frequency Tuning:

Go to performance tuning section, advanced hardcore tuning mode. Apps, such as videocalling apps, navigation apps or streaming apps don´t need access to extremely high CPU frequencies. Especially not from the big cluster and prime core.

Now think back to the architecture of the SoC.

Try experimenting by restricting the max cpu frequencies for the big cluster ( cpu_max_freq 4-6) and the prime core (cpu_max_freq 7).

Restricting the max freq for the big cluster from 2,4ghz to 1,67ghz will essentially cut the power draw in half, if the phone ramps up to the respective allowed max freq.

The same applies to the Prime-Core!

As a side effect this will also reduce heat and of course performance.

But it can prolong your battery life and reduce the heat your phone produces. Good example are hot climates, generally in summer during extended navigation sessions with navigation apps.

Tuning the cpusets:

This might be one of the most powerful options in armoury crate. Yet I think not many understand the purpose let alone what the value of the sliders mean.

But here we come back to the architecture layout of the SoC and the cpusets I briefly explained above.

Two settings are of importance for us here.

"dev/cpuset/top-app/cpus" and "dev/cpuset/foreground/cpus"

Here´s the linux-kernel documentation about cpusets: https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpusets.html

From that documentation:

Cpusets provide a Linux kernel mechanism to constrain which CPUs and Memory Nodes are used by a process or set of processes.

Tasks from the "top-app" group include always the currently displayed app on Android. The option "dev/cpuset/top-app/cpus" in Armoury Crate allows us to define, which CPUs this app´s tasks get scheduled to.

This creates the possibility to run the currently displayed app entirely on the little cluster (0-3) for example. Or on all cores (0-7).

It´s an extremely powerful setting.

Unfortunately you don´t see the cpusets displayed as 0-3, 0-7 or 0-6 in Armoury Crate.

By default you have only limited options on Armoury Crate: 15, 240 and 255.

These are decimal values, that represent the cpusets I explained above. Unfortunately this restricts most people from making use of this feature without any form of explanation from Asus.

Here´s a small table that explains the values, also the values I added additionally to armoury crate:

Small reminder: 0-3 are the little cores, 4-6 the big cores and 7 the prime core

255= 0-7 utilize all cores -> default for top-app and forground!

1 = 0 use only one little core of the little cluster -> not recommended, extreme powersaving but phone will stutter

3= 0-1 use two small cores of the little cluster -> great powersaving at the cost of performance, phone will probably stutter, use with caution

15= 0-3 use the little cluster only -> great powersaving, while utilizing the cores that require the least amount of energy

127 = 0-6 utilize the little cluster plus the big cluster, but NOT the Prime core -> saves power, with only a small performance loss during peak performance scenarios

240= 4-7 utilize only the big cluster plus the prime core!

This can be very useful, when using a fitness app to track cycling for example. There might be no need for the prime core in that case.

Try to set dev/cpuset/top-app/cpus to 127 for this app (maybe additionally to restricting the max_freq for big and prime cluster below 2ghz). Use your phone and see what happens.

If you want to save more power try also setting dev/cpuset/foreground/cpus to the same value as you did for top-app.

This is it for now, but I might add more options to this write-up at a later point in time.

Other Tips and Tricks:

System-Apps and Armoury Crate:

Some apps, like Google Maps can´t be added to Armoury Crate, because Armoury Crate only allows adding apps installed by the user.

However there is a trick to this. Get the Magisk-Module "Debloater (Terminal Emulator)" from the Magisk Repo.

Now you can systemlessly remove Google Maps from your Phone. Do a reboot. Clear cache from Armoury-Crate and re-install Google Maps from the PlayStore.

You´re able to add Google Maps to Armoury Crate now.