[APP][7.0+][1st October 2019] Helix Engine 5.0.1b FINAL

Search This thread

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove

LATEST ANNOUNCEMENT HERE
LGJTSgx.png


About:
Helix Engine is a tool to help improve the efficiency of your device.

With the use of the Accessibility Service, Helix Engine is able to dynamically switch between different performance profiles automatically without any user interaction. With App Engine, users can configure what app they want to set for which profile, this will be used for the Accessibility Service to determine what profile to switch to when that particular app is detected as currently in use. Users are also able to configure each profile to their liking.

Helix Engine supports all ARM/ARM64 SoCs, from Android Nougat and above. It is recommended that you do not use any other tools that may modify any of the components in the profile customisation page to prevent any conflicts with this tool.


Requirements:
- Root (I think this is obvious but just in case it's not...)
- An ARM (32-bit ARMv7) or ARM64 (64-bit ARMv8) SoC
- Android 7.0 or above
- No other modifications which may tweak kernel tunables automatically (e.g. Advanced Kernel Tweaks, LSpeed, HEBF etc.)


Features:
- App Engine
Battery: Low-performance mode to save power on apps that don't need that much power (e.g. Facebook, Messenger, Instagram, Reddit, apps that are generally for browsing)
Balanced : The default profile for all apps and newly installed apps. Apps that you think requires a decent amount of power, but not as much as the power intensive applications suitable for performance profile.
Performance : High-performance mode to enable buttery smooth gaming, as well as exceptional benchmark performance (if you are into that sort of thing). Also useful for very power intensive tasks like backup managers, file explorers (when transferring large files), media editing tools, camera apps, launchers (for fast app launches) etc.
Whitelist : Helix Engine will detect these apps and will avoid applying any profile when they are in use. Useful for apps such as keyboards when they become the top-app when the keyboard appears on the screen, avoids unecessary profile switching.

The engine detects which app is currently in use (in the top-app group), and will apply the profile's configuration according to the profile you've set the app to automatically. For example, the battery profile's configuration is applied when an application that has been set to the battery profile has been detected as currently running. Apps set to balanced will apply the balanced profile's configuration. Apps set to performance will apply the performance profile's configuration. Apps set to whitelist will be ignored (i.e. no profile changes from the previous profile that was applied when the whitelisted app is in the top-app group).

Multi select feature: Check the boxes by pressing on the checkbox or the card of each app to select them, a FAB will appear which will allow you to batch set a profile to the selected apps.

Auto Whitelist: (Some apps will not show in the App Engine page, as they are auto-whitelisted to prevent Helix Engine from unnecessarily switch profiles)


- Profile Customization
Users can also configure each profile configuration to their personal preferences. Each configuration should be unique to its own profile.


- Auto Mode (Experimental)
Helix Engine will automatically adjust profile values per-app to attempt to achieve the target jank percentage.


- Backup and restore configs:
Save your App Engine and Profiles configurations and restore them at any time with ease.[/U][/B]


- View system apps
Allows you to change profiles for system apps (if disabled, all system apps will use balanced by default).


- Search function in App Lists
Search through app lists using the search button in the action bar.


- Dark theme


Download:


Credits:
@ivicask for giving me the idea of the concept for this engine before it was created. Without him, I wouldn't even have started this project.
@RogerF81 for maintaining all of the scripts for Helix Engine and alpha/beta testing! Also inspiration for ideas :p
@Mostafa Wael for giving some ideas on improving the engine, and beta testing!
@geko95gek for being a 32-bit ARM tester
All of my team members at Team Helix for supporting me!
Everyone who promoted this app!
Thanks to anjlab for in-app billing library (Source)
Thanks to @topjohnwu for libsu library (Source)

Donations are completely optional and are always greatly appreciated: https://www.paypal.me/ZeroInfinityXDA
 

Attachments

  • helix-engine-5.0.1b.apk
    2.3 MB · Views: 6,219
Last edited:

RogerF81

Senior Member
Oct 14, 2015
1,985
1,415
Stuttgart
Xiaomi Poco F3
Google Pixel 8 Pro
Shared profile data collection


App Engine Lists
App Engine lists shared by the users are now maintained on Github. You can find them here: App Engine lists


Profile Data
Profile Data can now be found here: Profile Data


Helix Engine Add-on

Additionally, I created an add-on, which is a flashable Magisk module. This add-on will run some further tweaks, which are not covered by HelixEngine itself (yet). I'll attach it here.
You want to know what it does exactly? Have a look here: Github

Supported chipsets so far
  • Snapdragon 835
  • Snapdragon 820
  • Snapdragon 810
  • Snapdragon 808

to be continued...
 

Attachments

  • HelixEngine_Add-on.zip
    6.8 KB · Views: 841
  • HelixEngineAdd-on_v2.zip
    7.6 KB · Views: 326
  • HelixEngineAdd-on_v3.1.zip
    7.9 KB · Views: 476
  • HelixEngineAdd-on_v4.zip
    7.7 KB · Views: 398
  • HelixEngineAdd-on_v5.zip
    8 KB · Views: 681
  • HelixEngineAdd-on_v6.zip
    8 KB · Views: 1,007
  • HelixEngineAdd-on_v8.zip
    8 KB · Views: 580
  • HelixEngineAdd-on_v9.zip
    8.1 KB · Views: 179
  • HelixEngineAdd-on_v10.zip
    8.1 KB · Views: 1,903
Last edited:

prajnay

Senior Member
Sep 17, 2016
349
97
It might just be me but I am seeing a more stuttering after flashing this engine .
 

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
It might just be me but I am seeing a more stuttering after flashing this engine .

Depends on what app you use, for battery apps, it may feel slower than normal (to prevent these battery apps from draining unnecessary amount of power). However, games and using the launcher should have no problems as it'll execute the performance profile. If battery profile is too slow for you, I'll discuss it over in my team so we can tune it a bit more towards better performance (at cost of a bit of battery).

This is currently in BETA so there will be some hiccups here and there, we will need feedback from a lot of people so we can fine tune it some more until most people are satisfied.
 
  • Like
Reactions: Spookymyo

me myself and i

Senior Member
Jan 15, 2013
197
33
been using for a few hours........browsing.....watching video....taking picture. had it freeze on me while in the camera, after zooming, takign picture, and moving the phone it froze. had to power down because my phone went totally unresponsive. im idle drain is insane though. down to 0.36%/h from about 1.5%/h.


as im writing this i tested to camera malfunction again and it malfunctioned yet again. on OOS 5.0.2 blu_sparks kernel. and also experiencing sluggish scrolling in instagram.

edit: added some stuff
 
Last edited:

Pires_7

Senior Member
Dec 26, 2012
136
20
OnePlus 8
Would like to try, only one question. How to remove after flash? Apk unninstal, magisk module delete, but what about flashable aroma zip? Thanks for you awesome work!
 

DeeZZ_NuuZZ

Senior Member
May 16, 2012
11,467
4,542
28
Hanover
HTC 10
Google Pixel 3 XL
been using for a few hours........browsing.....watching video....taking picture. had it freeze on me while in the camera, after zooming, takign picture, and moving the phone it froze. had to power down because my phone went totally unresponsive. im idle drain is insane though. down to 0.36%/h from about 1.5%/h.


as im writing this i tested to camera malfunction again and it malfunctioned yet again. on OOS 5.0.2 blu_sparks kernel. and also experiencing sluggish scrolling in instagram.

edit: added some stuff
Please provide a logcat when something starts to not work as it should and even makes the phone unresponsive, so we can take a look.

Sent from my HUAWEI BLA-L29 using XDA Labs
 
  • Like
Reactions: Mecca EL
been using for a few hours........browsing.....watching video....taking picture. had it freeze on me while in the camera, after zooming, takign picture, and moving the phone it froze. had to power down because my phone went totally unresponsive. im idle drain is insane though. down to 0.36%/h from about 1.5%/h.


as im writing this i tested to camera malfunction again and it malfunctioned yet again. on OOS 5.0.2 blu_sparks kernel. and also experiencing sluggish scrolling in instagram.

edit: added some stuff
I concur. After reading this, i tried to take a picture at 4x zoom. Right after clicking the shutter button, it hung. While waiting to see if it would get back to normal, i could see occasional stutters. After rebooting, I couldn't replicate the issue again

Sent from my Oneplus 5 using XDA-Developers Legacy app
 

ZeroKool76

Senior Member
Oct 21, 2014
718
424
Ok, so far , so good. Using it on my 3T. Can already feel the performance boost. I use G+ as a benchmark for scrolling and it has smoothed out quite a bit. Now, i will see how it does on battery. Great job, brother. Always looking for new ways to save battery. Appreciate the effort
 

smohanv

Senior Member
Nov 5, 2006
2,119
650
Higham, Rochester, Kent
I experience jitter scroll effect rather being very smooth. I am on OB5 with Boeffla kernel.

It is more than 10 hours now. I will watch battery saving and share here.

As someone mentioned in this thread, it is a good idea to take system backup before flashing so that we can revert.

Sent from my OnePlus 5 using Tapatalk
 

Top Liked Posts

  • There are no posts matching your filters.
  • 485
    Hey everyone! I've completely forgotten about the first year anniversary of Helix Engine! Thank you so much for all of those who have supported me from the very start!

    You know the drill, more codes for free premium upgrades ;)

    1XM1X878U41C4YGXRDHHA6V
    WSQZEFWQNBUB6DRYYRLM486
    107J4PA0Q5WRTX8TUD0N1MH
    PK18SG4KUTEES0YE185GF88
    5X3F6XL81E0L9X96L2V7VR0

    Redeem either in play store > redeem code, or Helix Engine > upgrade > change payment method > redeem code.

    Now you know how busy I've been, that I've forgotten the anniversary of my own app :p

    Please remember, I don't believe I can get 5.0.0 finished in time before I finish uni, so it may be until the end of May until more development picks up again. Meanwhile, one of the projects I am doing for uni is a new app, so something new may be on the horizon after I finish as I plan on continue working on that as well :)
    479
    5.0.0-alpha

    - Removed CAF boost framework/perf fix - not necessary to disable anymore, disabling input boost is enough to stop overriding behaviour
    - Significant code optimizations to keep the app running smoothly
    - Optimized App Engine
    - Significantly reduced risks of memory leaks
    - Fix some values not being applied properly due to improper permissions
    - Fix SoC model not being detected if installed for the first time or after factory reset
    - Removed Input Boost support due to the fact that it interferes with CPU freq capping
    - Removed dialog when MLM is enabled while entering battery or balanced profile, you can now edit everything while MLM is enabled
    - Input boost will automatically be disabled when Helix Engine is in use
    - Fixed notification not turning off when Accessibility Service gets turned off
    - Notification will now tell you if force performance mode is enabled
    - Fixed dyn stune boost not showing if input boost enable did not exist
    - Cleaned up Notification
    - Removed Sync App Engine and User Experience Program
    - Removed root access checking for the time being to speed up loading time when launching the app
    - Fix SoC detection for SDM636 but need to check if SDM660 will detect as SDM636 now

    Machine Learning 3.0:
    - Per-app profiles which are automatically generated from Helix Engine profiles as a "base"
    - App history which stores current configs of when target jank percentage was achieved
    - Room Database to keep per-app profile and app history records
    - Margin of error is now customizable
    - Min/max CPU freqs in battery and balanced profiles will be a range used by the algorithm
    - Schedtune/dynamic boost value will now be a maximum range value if MLM is enabled
    - Normalised per-app ML profile which is automatically generated from historical stats
    - Automatic database cleaning to prevent database from building up and taking up large storage space
    - Removed Speed of Learning modifier, it is integrated within the algorithm now

    Machine Learning 3.0:
    A special ML profile that is automatically generated will be used instead of the regular app engine profiles. The profile collects the average values from a local database created by Helix Engine containing a history of configs that were used to achieve the target jank percentage for that particular app. Overtime this profile should get more and more consistent.

    App Engine configs are still important because the profiles (battery/balanced) will give the app a starting point to work from. E.g. if you set an app to battery and has not been detected by Machine Learning before, it will use the config that's been set to the battery profile only for the first time.

    I've taken precautionary measures in the event that the database starts to use up a lot of storage - a history threshold is put in place (100 records per-app). When the size of the App History reaches the threshold, it will delete the oldest history record when a new history record is added. This way, you will still get a good sample size of historical data to get a normalised profile from, but the database won't grow into extreme sizes.

    CPU frequencies are now ranges you can set for the algorithm, so it won't go above or below this range. For schedtune/dynamic boost, the value set in battery or balanced will be the max range.

    Input Boosting:
    From my testing, I found that input boost interferes way too much with frequency capping, so I've stopped supporting it altogether. EAS kernels can still benefit with schedtune.boost and dynamic_schedtune.boost. This is not to say that Helix Engine does not support HMP, you are still fine to be on an HMP kernel, but you will get better performance/efficiency with an EAS kernel nevertheless.

    I've also enrolled to use Google's Play App Signing service, so hopefully people who are so anal about signatures will be satisfied.

    Update rolling out to the alpha channel in the play store now, or you can get the APK attached in this post.

    WARNING: IT IS ADVISABLE TO WIPE APP DATA BEFORE OR AFTER INSTALLING THIS UPDATE! THERE HAS BEEN SIGNIFICANT CHANGES AND BUGS MIGHT OCCUR IF YOU IGNORE THIS!

    ------------------
    EDIT 26/01/19:

    CAF Boost Framework no longer needed to be disabled or "fixed"! Helix Engine just disables input boosting which will be enough to keep CPU frequencies from obeying their capped values!

    Also fixed normalised per app profiles not being generated properly in the last build. It is 100% working now.

    A few changes to the logic and priority of which value gets decreased first, as well as re-implementing speed of learning, but is controlled automatically this time. Values will decrease according to a multiplier which will be determined by how far the jank percentage is from the target jank percentage.

    User Experience Program and Sync App Engine has been removed due to the fact that most recommended profiles are being set to balanced anyway, which is not supposed to happen at all. We will be collecting app engine lists which will be added to the shared profile data post maintained by @RogerF81.

    ------------------
    EDIT 30/01/19:

    There was a major bug where the machine learning mode would get stuck on values due to something I messed up, it's been fixed now and the latest build is rolling out in the play store. The latest build will also be attached in this post as 67.apk.
    476
    5.0.0-alpha EARLY TEST

    An advanced Merry Christmas to those who celebrate it!

    5.0.0-alpha:
    - Misc code optimizations to keep the app running smoothly
    - Significantly reduced risks of memory leaks
    - Fixed notification not turning off when Accessibility Service gets turned off
    - Notification will now tell you if force performance mode is enabled
    - Cleaned up Notification

    - Machine Learning 3.0
    - Normalised per-app ML profile which is automatically generated
    - Training Data to make ML behave more consistent than before
    - Automatic database cleaning to prevent database from building up and taking up large storage space
    - Removed Speed of Learning modifier as it is not needed for the new algorithm

    Machine Learning 3.0 in a nutshell:
    A special ML profile that is automatically generated will be used instead of the regular app engine profiles. The profile collects the average values from a local database created by Helix Engine containing a history of configs that were used to achieve the target jank percentage for that particular app. Overtime this profile should get more and more consistent.

    App Engine configs are still important because the profiles (battery/balanced) will give the app a starting point to work from. E.g. if you set an app to battery and has not been detected by Machine Learning before, it will use the config that's been set to the battery profile only for the first time.

    I've taken precautionary measures in the event that the database starts to use up a lot of storage - a history threshold is put in place (100 records per-app). When the size of the App History reaches the threshold, it will delete the oldest history record when a new history record is added. This way, you will still get a good sample size of historical data to get a normalised profile from, but the database won't grow into extreme sizes.

    NOTE: In the current state of 5.0.0-alpha, Machine Learning ONLY changes CPU frequencies. More parameters will be added later, this is a very early build of 5.0.0!

    This is only going to be an XDA release, it will not be available in the play store yet as it is a very early build. If you are having issues upgrading from 4.0.6-beta, or downgrading from 5.0.0-alpha to 4.0.6-beta wipe app data and try opening the app again.

    Again, this is a very early release of 5.0.0, don't expect it to be 100% perfect. If 4.0.6-beta is working great for you already, you don't have to upgrade to this build.

    Oh also here's 5 free premium upgrade codes, you can redeem either via play store > redeem or Helix Engine > Upgrade > Change Payment Method > Redeem Code:
    KGYQMFFJF3RJ1EJ4XL7KQK4
    BVK5FRP3KT084F28LJKQR42
    WN5YVBZRYACKKJ0VL5T0PSH
    K1CLUWSAW68TEX0JUZ9CNUF
    UA38F4EW9UBXV0YF8SZ15A0
    475
    Just finished my exams for this semester. New build of 5.0.0-alpha coming soon!

    I've fixed some idle drain issues reported by @raphielscape where stopping the perf service can cause more idle drain due to failed acquired lock errors by perf when the service is disabled, spamming the logcat like crazy. Perf will be restarted whenever the screen is off, and will be disabled whenever the screen is on.

    Also fixed normalised per app profiles not being generated properly in the last build. It is 100% working now.

    A few changes to the logic and priority of which value gets decreased first, as well as re-implementing speed of learning, but is controlled automatically this time. Values will decrease according to a multiplier which will be determined by how far the jank percentage is from the target jank percentage.

    EDIT: I am thinking of removing the User Experience Program/Sync App Engine. I was doing the implementation of having the recommended profile display on each app in App Engine, but it turns out that the majority of the recommendations are still balanced or completely wrong suggestions (e.g. Camera being recommended the battery profile WTF?). It might be worth just sharing our XML config files using Helix Engine's backup and restore feature, at least this will be more accurate. What do you guys think?
    475
    Surprise! New build is up - I couldn't wait hahaha

    New builds are posted here: https://xdaforums.com/showpost.php?p=78655092&postcount=3182 APK is attached in the post but is rolling out in the alpha channel via play store too.

    If you were on a previous build of 5.0.0-alpha before, it may not be necessary for you to wipe app data. If you encounter bugs, please wipe app data and see if you can reproduce the bug before reporting it.

    New location for user submitted configs after the absence of User Experience Program/Sync App Engine: https://github.com/Team-Helix/Helix-Engine-User-Configs

    If you want to submit your own configs, feel free to post it here and tag either me or @RogerF81 and we'll add it to the repo :)