[Guide, Aroma, Magisk] Thermal throttle tweaking

Search This thread

octavioromo

Senior Member
Jun 16, 2009
83
8
There's got to be something we're missing here. Anyone who still has problems installing:

Please follow the exact instructions and tell us the exact error message at the exact installation step.

The add-ons you have also flashed and version would be great also! The ROM and version as well.

I'm on the nightly ACIP 8.1, latest Franko 50, latest Magisk 15.3
Tried flashing once all the other zips were already installed on a previous recovery reboot
 
Last edited:

yochananmarqos

Inactive Recognized Contributor
Feb 15, 2013
3,375
2,525
github.com
Google Pixel 3
Google Pixel 8
The add-ons you have also flashed and version would be great also! The ROM and version as well.

I'm on the nightly ACIP 8.1, latest Franko 50, latest Magisk 15.3
Tried flashing once all the other zips were already installed on a previous recovery reboot
None of that matters if we don't know what the error message is. Can you upload (please don't paste it here) your TWRP log after attempting to flash the systemless installer?

Sent from my Nexus 6P using XDA Labs
 

octavioromo

Senior Member
Jun 16, 2009
83
8
I just tested my Thermal Tweaking 1.4 module with Magisk 15.0 and it flashed via Magisk Manager just fine. I will update all my modules to template 1500 soon, but there's no immediate need as Magisk 15.0 has backwards compatibility with template 1400.

FYI, this is the way I install / update Magisk:
  1. Download Magisk via the Manager, but do not flash it
  2. Reboot to recovery, flash the stock boot.img to clear the ramdisk
  3. Flash Magisk before the custom kernel so it creates a backup of the stock boot.img just in case
  4. Flash the custom kernel (ElementalX in my case) and reboot

Bam! Did this again and it worked.

Extracted boot.img from the nightly AICP>
In TWRP selected image then boot and flashed>
Flashed Magisk> Flashed: magisk-thermal_tweaking_v1.4.zip >
Flashed: thermal_tweaking_systemless_v1.2.2.zip (installed with no errors)>
Flashed: Franco v.50, rebooted and updated setting for the extreme profile.

All good now!

Really appreciate the help. Thanks again!

Question, when flashing nighties, im guessing ill have to flash this mod each time? Not quite sure in what cases or what mods will survive a dirty flash.
 

yochananmarqos

Inactive Recognized Contributor
Feb 15, 2013
3,375
2,525
github.com
Google Pixel 3
Google Pixel 8
Bam! Did this again and it worked.

Extracted boot.img from the nightly AICP>
In TWRP selected image then boot and flashed>
Flashed Magisk> Flashed: magisk-thermal_tweaking_v1.4.zip >
Flashed: thermal_tweaking_systemless_v1.2.2.zip (installed with no errors)>
Flashed: Franco v.50, rebooted and updated setting for the extreme profile.

All good now!

Really appreciate the help. Thanks again!

Question, when flashing nighties, im guessing ill have to flash this mod each time? Not quite sure in what cases or what mods will survive a dirty flash.
You'll only have to reinstall the mod if you uninstall Magisk or wipe /data. However, if the nightly overwrites the boot.img, you'll need to flash Magisk and your custom kernel again.

Sent from my Nexus 6P using XDA Labs
 

Limuqingcheng

New member
Jan 30, 2018
3
0
thermal-engine-8992.conf has been encrypted

在Lineage OS 15.1 版本中,温控文件已经被加密,修改之后会执行高通默认温控,锁核现象更加严重。
In the Lineage OS 15.1 version, the temperature control file has been encrypted. After the modification, the default temperature control of Qualcomm will be performed, and the lock phenomenon will be more serious.
 

Razorless

Senior Member
Aug 10, 2008
447
327
In the Lineage OS 15.1 version, the temperature control file has been encrypted. After the modification, the default temperature control of Qualcomm will be performed, and the lock phenomenon will be more serious.

That's bad news. Is this exclusive to Lineage OS or do other Android 8.1 based ROMs have it encrypted as well?
 

Limuqingcheng

New member
Jan 30, 2018
3
0
That's bad news. Is this exclusive to Lineage OS or do other Android 8.1 based ROMs have it encrypted as well?

I'm not very clear about other ROMs, but I think this is a trend and maybe it's going to be closed in the future.
对于其他ROM我不是非常清楚,但是我认为这是一种趋势,或许之后会向着封闭的方向发展。

This is the file encrypted:
 
Last edited:

Razorless

Senior Member
Aug 10, 2008
447
327
I'm not very clear about other ROMs, but I think this is a trend and maybe it's going to be closed in the future.
对于其他ROM我不是非常清楚,但是我认为这是一种趋势,或许之后会向着封闭的方向发展。

This is the file encrypted:

I am using ABC ROM (8.1) right now and can confirm that the thermal modifications still work. What kernel were you using? The one that came with the ROM?
 

yochananmarqos

Inactive Recognized Contributor
Feb 15, 2013
3,375
2,525
github.com
Google Pixel 3
Google Pixel 8
won't install with the latest magisk version.. says magisk can't be found, is this still being maintained / updated?

Thank you

I don't use my 5X much anymore, so I hadn't noticed. I updated the template for Magisk 17, try it out. I haven't tested it yet myself.
 

Attachments

  • magisk-thermal_tweaking_v1.6.zip
    6.3 KB · Views: 57

Razorless

Senior Member
Aug 10, 2008
447
327
The module installs fine, but the aroma installer can't find magisk. It looks like the installer tries to use the old magisk symlink at /magisk.

The aroma installer has not been updated for the new Magisk template. @Seyaru uploaded a version 1.5 version that does not need the aroma installer and just installs the recommended extreme profile. I renamed the version to extreme standalone and updated the OP. For now, you can just install the standalone version if you are content with using the extreme profile (been using it myself for a long time now, no problems so far, but no guarantees).
 
Last edited:
  • Like
Reactions: Wolfensteinjd

yochananmarqos

Inactive Recognized Contributor
Feb 15, 2013
3,375
2,525
github.com
Google Pixel 3
Google Pixel 8
The aroma installer has not been updated for the new Magisk template. @Seyaru uploaded a version 1.5 version that does not need the aroma installer and just installs the recommended extreme profile. I renamed the version to extreme standalone and updated the OP. For now, you can just install the standalone version if you are content with using the extreme profile (been using it myself for a long time now, no problems so far, but no guarantees).
Magisk module v1.4 is template 1400, v1.5 is template 1500 and v1.6 is template 17000. There is no difference otherwise. Version 1.4 and 1.5 should be removed from the OP to avoid confusion. Flashing it alone will indeed install the extreme profile.

Sent from my Pixel using XDA Labs
 

Razorless

Senior Member
Aug 10, 2008
447
327
Magisk module v1.4 is template 1400, v1.5 is template 1500 and v1.6 is template 17000. There is no difference otherwise. Version 1.4 and 1.5 should be removed from the OP to avoid confusion. Flashing it alone will indeed install the extreme profile.

Sent from my Pixel using XDA Labs

Alright, I forgot to remove the non working 1.4 version. So your 1.6 works in the same way as the 1.5, they install the extreme profile, correct? In that case, I'll take down the aroma installer as well.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 80
    Update: The Aroma installer should work again. You can also only use the v1.6 (it installs the recommended extreme profile and doesn't need the aroma installer). Thanks @Seyaru and @yochananmarqos
    Make sure to backup your orignal thermal-engine. I attached it just in case.

    Update: It seems as there is a hardcoded limit for the thermal throttling of the big cluster (may be kernel related). That means that the profiles above extreme decrease the performance instead of increasing it (they only prevent the big cluster from going offline, even though it is not utilized any more)


    Update: Zip now supports magisk! thanks @tohtorin and @yochananmarqos for the new updated zip
    Update: now with a flashable zip that supports both system and systemless root! thanks @tohtorin for that zip
    Instructions for the zip install:
    Instructions:
    magisk:

    Installing/Updating Magisk to a new version:
    1. Download Magisk via the Manager, but do not flash it
    2. Reboot to recovery, flash the stock boot.img to clear the ramdisk
    3. Flash Magisk before the custom kernel so it creates a backup of the stock boot.img just in case
    4. Flash the custom kernel (ElementalX in my case) and reboot

    Installing the module:
    1. You have to have Magisk installed (for more information see Magisk thread).
    2. Flash magisk-thermal_tweaking_v1.6.zip (installs the recommended extreme profile by defaullt)
    3. If you want another profile, flash "thermal_tweaking_systemless_v1.2.3.zip" and selecet "Magisk" as installation type
    4. Enjoy your flying hot potat.. phone

    You can still use the installer without magisk. In that case, ignore step 1 and 2 and do NOT select magisk as installation type.
    Also, if you are using elemental/franco kernel, don't forget to enable core control, disable msm_thermal and set "throttling temp" according to the profile
    Hello and welcome!
    Do you like shiny graphics but your phone does not? Do you sometimes wonder why the Nexus 5X has a big cluster that's offline almost the entire time? Tired of lags and stutters? Well, search no more. The solution is right around the corner!

    Attention: Setting these values too high can cause damage. I'm not responsible if this fries your phone or burns down your house.
    Update: It seems like there is a hardcoded limit, see above.


    If you don't want to tweak the settings yourself, you can scroll down to the recommended settings section.

    Note: Right now this has only been tested on elemental and franco kernel with core control enabled (msm_thermal does nothing). I will update this as soon as I have some information from the kernel devs.
    update: francokernel has the same settings regarding hotplug, so you need to enable core control and set the thermal limit with a kernel manager

    update: don't know about phasma yet. It seems to work with phasma
    update: have not tried this with stock kernel, but it should work
    update: this will not work with jolla kernel since it has it's own thermal tweaks and does not use the thermal-engine
    update: racer kernel now works and has the extreme_v4 profile implemented

    Let's first try to understand the thermal throttling of the Snapdragon 808. Here is a comparison of thermal throttling on several 808 devices. The LG G4 throttles much later at much higher temps, and as a result gets alot warmer on the outside. Since the Nexus 5X uses the same SoC, it should be safe to increase the thermals. However, you have been warned!

    Before you can get started, you need root access and a root explorer. The file we want to edit is named "thermal-engine-8992.conf" and can be found in "system/etc". Permissions have to be rw- r-- r--

    We can easily influence the following behaviors (I'm only showing the relevant lines, not the entire file). A reboot is required after applying changes.

    Hotplug temp, Temperature at which the big cluster will be taken offline:
    This should be set at the same temp as the throttle temp of the big cluster. It must never exceed it by more than 2°C or you will loose performance!.
    Note: On elemental/franco kernel, enabling "core control" in a kernel manager, and setting a "thermal throttling" limit, overrides this setting. Disabling core control disables hotplugging altogether, so the cores will never shut off (don't do this)!. So, if you are using elemental/franco kernel, set core control to enabled and set your desired hotplug temp in the kernel manger. The values below have no effect on elemental/franco kernel. This behavior was only tested on elemental kernel. Only If you are on stock kernel you will need to edit those lines.
    Note2: using "msm_thermal" in a kernel manger overrides this setting with "infinte" so the core never shuts down (don't do this). Msm_thermal seems to have no effect on the Nexus 5X.
    Code:
    [CPU4_HOTPLUG_MONITOR] and [CPU5_HOTPLUG_MONITOR]
    thresholds     [B][COLOR="Blue"]41[/COLOR][/B]000
    thresholds_clr [B][COLOR="Blue"]39[/COLOR][/B]000
    The bold blue digits represent the temperatures in °C. Threshold means the temp to shut down, threshold_clr the temp to go online again. The higher these digits, the longer the big core will be usable by the phone (but only as long as the throttle temp is not more than 2°C lower). The difference between the two temps should be at least 2°C.

    Throttle temp of big cluster, Temp at which the big cluster starts to throttle it's clock:
    This should not be higher than the hotplug temp of the big cluster
    Code:
    [PID-BIG_CLUSTER_management]
    set_point          [B][COLOR="blue"]39[/COLOR][/B]000
    set_point_clr      [B][COLOR="blue"]37[/COLOR][/B]000
    At the set_point a PID algorithm will be used to throttle the CPU step by step. The set_point_clr determines how soon the the clock speed will increase again. Keep at least 2°C between those two. Increasing these temps will allow the big cluster to be utilized longer at higher clock speeds.

    Throttle temp of little cluster:
    Code:
    [PID-LITTLE_CLUSTER_management]
    set_point          [COLOR="Blue"][B]44[/B][/COLOR]000
    set_point_clr      [COLOR="blue"][B]41[/B][/COLOR]000
    Determines when the little cluster will be throttled. Keep 3°C between the temps.

    Throttling of the GPU:
    Code:
    [SS-GPU_management]
    set_point          [COLOR="blue"][B]44[/B][/COLOR]000
    set_point_clr      [COLOR="blue"][B]41[/B][/COLOR]000
    Same as above. 3°C difference.

    LCD brightness reduction:
    Code:
    [LCD_management]
    thresholds       [COLOR="Blue"][B]36[/B][/COLOR]000         [COLOR="blue"][B]39[/B][/COLOR]000      ...
    thresholds_clr   [COLOR="blue"][B]34[/B][/COLOR]000         [COLOR="blue"][B]37[/B][/COLOR]000      ...
    Now this works slightly differntly. The threshold and threshold_clr works the same. But this time we have every step as it's own line. If you want to increase the temp at which the screen starts to reduce it's brightness by 2°C, you would need to raise every threshold and threshold_clr in this category be 2°C. As usual keep 2°C between the temps.

    update:
    battery charging current reduction.:
    Code:
    [battery_monitor]
    thresholds       [COLOR="royalblue"][B]40[/B][/COLOR]000
    thresholds_clr   [COLOR="royalblue"][B]38[/B][/COLOR]000
    If you want to increase the temperaure at which the phone reduces its charging rate, you can raise the blue values. I would not recommend anything higher than 4°C.

    Recommended Settings:
    How to use:
    update: back online, please uninstall the old version and install the new one (only for systemless)!: @tohtorin and @yochananmarqos have created a nice zip with Aroma installer. It can install the engine with a classical system install (overwrites the file in system/etc) or a systemless method, that does not touch your system partition. You only need the v1.6 to install the extreme profile. That means you can still apply OTAs and won't even lose the thermal tweak (as long as you have systemless root working).

    You can grab the file and the uninstaller (can also be uninstalled via magisk manager) in the attachements below. Just flash it, no need to wipe anything. If you are using elemental/franco kernel, you still need to enable core control, disable msm_thermal and set the value for thermal-throttling to the appropriate setting (see profiles below) in EXkernel manager.

    Note: If you have installed the script via system-method (or manually replaced/edited your thermal-engine) the systemless install will not work. In order to use the systemless version, you will need to have the stock thermal-engine in your system/etc.

    Old:
    Either edit the file yourself or download the attachement. Rename it to "thermal-engine-8992.conf", copy/overwrite it to "system/ect" and set permissions to "rw- r-- r--". Enable core control and set the thermal limit accordingly (elemental/franco). Reboot after editing/replacing.

    Using these thermal-engine tweaks does not necessarily decrease battery life. It only negatively impacts battery life if you are using the phone for so long or so heavily, that it would throttle or shut off the big cluster (or GPU/screen brightness) with stock settings.

    Normal user:
    Not playing graphically demanding games or doing CPU heavy workloads? Try this setting. With this, the big cluster will be online almost the entire time while "normally" using the phone. Also, this will not increase the maximum phone temperature so it should be almost risk-free.
    • only on stock kernel: hotplug big cluster 46/44
    • elemental/franco: core control enabled ; "thermal throttling" in kernel manger to 46
    • any: throttle big cluster 46/44
    Gaming:
    Like those shiny graphics? Most games need lots of GPU power but are actually not that demanding on the CPU side. So the little cluster should provide enough horsepower. For this we need to raise the phone's maximum temperature limit, so it will get noticibly slightly warmer. With this, the GPU has alot more breathing room and will run at higher speeds for a longer time. This may be increased even more, because the G4 has even higher values (Moto X doesn't throttle GPU at all)
    • only on stock kernel: hotplug big cluster 43/41
    • elemental/franco: core control enabled ; thermal throttling" in kernel manger to 43
    • any: throttle big cluster 43/41. So you have a better experience during "normal" use
    • any: little cluster throttle 47/44 ; GPU throttle 47/44
    heavy duty: update v5
    Think you can handle the heat? No Less of a compromise in daily use and increased gaming performance with a brighter screen. This will turn your phone into a hot beast a slightly warmer phone.
    update v2: increased the hotplugging temp of the bigs for longer usage.
    update: heavy_v2 fixed now (it was the same as v1, sorry for that)
    update v3: Increased throttle temp for the littles. They throttled too soon after longer usage.
    update v4: I decided to increase the temperature at which the charging current gets reduced since it is pretty low. Increasing it by 4°C should be safe. This will still not rapidly charge your phone during navigation or gaming, though. However, with light usage such as browsing this will increase the charging rate.
    update v5: fixed a wrong value for big cluster throttle clear temp (was 46, should be 47)
    • stock kernel: big hotplug 46/44 v2 49/47
    • elemental/franco: core control, limit 46 v2 49
    • any: LCD 38/36, 41/39, 44/42, 47/45
    • any: little throttle 47/44 v3 49/47
    • any: big throttle 46/44 v2 49/47
    • any. GPU throttle 47/44
    • any: battery monitor 40/38, 43/42
    extreme
    update v4: Been using this for many days months now. Even under heavy load the phone is not uncomfortably hot. Didn't have any problems so far.
    Not for the faint of heart! This pushes the phone even further than heavy. These settings are still below those of the LG G4, but are significantly higher than stock. Only for those who like it hot.
    update v2: Increased the throttle temp of the big cluster. Throttling under medium/heavy load can cause lag. So now it doesn't throttle much before it goes offline. This results in a more fluid experience and smoother transition between big->little cluster.
    update v3: I decided to increase the temperature at which the charging current gets reduced since it is pretty low. Increasing it by 4°C should be safe. This will still not rapidly charge your phone during navigation or gaming, though. However, with light usage such as browsing this will increase the charging rate.
    update v4: Increased the little cluster throttle temp. Before this the littles throttled too soon under heavy usage.
    • stock kernel: big hotplug 51/49
    • elemental/franco: core control, limit 51
    • any: LCD 40/38, 43/41, 46/44, 49/47
    • any: little throttle 49/46 v4 51/48
    • any: big throttle 48/46 v2 51/49
    • any. GPU throttle 49/46
    • any: battery monitor 40/38, 43/42
    Update: The Profiles above extreme are outdated and do not work properly.

    Thanks:
    @RogerF81, @GoldGanja for making me aware of the thermal-engine, @flar2, @franciscofranco, @tohtorin for that awesome Aroma installer that supports systemless root, @yochananmarqos, @Seyaru for the new updated magisk zip
    Did I forget you? Just PM me and I'll add you

    I have attached the default thermal-engine of the Nexus 5X below for anyone who needs it.
    10
    This is some good **** right here. Between this and the governor profiles, this is the best community effort I've ever seen to improve a device. And the difference is extraordinary. I cannot wait to see how some of these changes play along with the Interactive Governor Profiles. Love all of the work you've put into researching the throttling behaviors on this device. Keep it up bro!
    7
    Would someone kindly give me a few tips?

    I had the heavy profile installed using the original method and noticed much better overall performance.

    The newest OTA came up on my screen. It wouldn't install directly from the phone as I had TWRP recovery installed so I downloaded it on the computer and flashed it using fastboot.

    This has now reset the thermal tweaks.

    I have noticed the new zip available and offers the chance to use it and be able to accept OTA updates and not lose the thermal tweak.

    Could someone please tell me the process?

    Also I had to unroot my phone after installing the thermal tweak for the first time as my banking app would not load. Is the systemless root easy to undo so that I can use this app?

    Sorry for all the questions and thanks in advance if anyone could kindly give me some guidance.

    Flash new OTA or stock images and then flash supersu 2.76 systemless and then this thermal tweak zip. Select systemless installation method when asked.

    ---------- Post added at 21:14 ---------- Previous post was at 21:07 ----------

    People, sorry in advance for the newbies and stupids questions. There are some therms/words that I don't understand/know, so I'd appreciate if someone could help me.

    What are big cluster and little cluster?
    What is "system/systemless"? What are the pros and cons?

    If you want to explain something else, feel free. All kind of help is welcome.

    Sorry for any english mistake.

    Again, thank you for your time.

    Best regards.

    Big cluster and little cluster are parts of your Snapdragon 808 processor. It contains total of 6 cores and 4 of them are little ones (ARM Cortex A53) with 1.4 GHz speed. Then there is 2 big ones (ARM Cortex A57) running with 1.8GHz. They are separated instances in one processor. Thats the design.

    Systemless means that whenever you install mods/files which should be installed under /system partition they are installed elsewhere and "linked" on top of system partition.
    This leaves system partition untouched and makes example OTA upgrades possible. If /system is altered at all OTA will be prevented to install. This gives you few more advantages like when ever you flash new system.img on top of the old one, systemless mods/files stays still there.

    System install is the traditional way to flash things, direct write to /system partition and it makes it altered. Then no OTAs are possible and always when you flash new system you'll have to flash your mods/files again because you lose them.

    Systemless needs systemless root SuperSU 2.76 or greater by @Chainfire to work. Method is designed by him/her.
    6
    Update: Aroma zips back online! please reinstall the new version (systemless only)

    Do the normal user and gaming profile affect the battery life?

    I havent noticed any difference even with extreme profile since most of the time cpu is under stock thermal limits.

    That's true, under light/normal usage you won't see a difference in battery life. Only if you use the phone in a way that would exceed the stock thermal limit, then you could maybe see a reduction in battery life, because the big cluster and GPU run at higher freqencies.
    However, since the small cluster is so much slower than the big one, it takes more time to process tasks and needs to run at higher clock speeds for longer periods of time. So in some cases you will see better, in other cases worse battery life.

    Update: Aroma zips are back online, if you used the systemless version, plesase uninstall and reinstall the new one.
    6
    New updates for installers:

    Installer v1.2:
    * Support for magisk v6

    Same installer now supports three types of installation methods:
    - SuperSU systemless
    - Magisk
    - Classic system write

    New files:

    thermaltweaking_magisk.zip - bare bones magisk module for thermal throttle tweaking (uses stock thermal config by default)
    thermal_tweaking_magisk_uninstaller_v0.1.zip - Magisk module uninstaller

    Instructions:

    1. You have to have magisk v6 or greater installed (for more information seek from magisk thread).
    2. Flash thermaltweaking_magisk.zip
    3. Flash installer thermal_tweaking_systemless_v1.2.zip
    4. Select Magisk as installation type
    5. Enjoy your flying hot potat.. phone :)
    @Razorless you can update OP

    New files temporarily from here:

    http://drg.fi/misc/thermal_tweaking_systemless_v1.2.zip
    http://drg.fi/misc/thermaltweaking_magisk.zip
    http://drg.fi/misc/thermal_tweaking_magisk_uninstaller_v0.1.zip