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

Search This thread

MAH3SH

Member
Nov 17, 2017
26
1
Most likely ROM issue, because no one has ever reported system reboots caused by Helix Engine before. At least, since 2.0.0.1-beta came out. You just deleted the entire perf folder in /system/vendor/etc right? Didn't touch anything else? That should not be causing any issues at all.
No I just deleted vendor/etc/pref in treble rom. Prixel experience treble rom with latest nameless kernel and GPU driver v6.
Whether I have to delete both the pref folders in system and vendor??
 
Last edited:

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
No I just deleted vendor/etc/pref in treble rom. Prixel experience treble rom with latest nameless kernel and GPU driver v6.
Whether I have to delete both the pref folders in system and vendor??
No, you only need to delete /vendor/etc/perf folder and reboot. That's it. If you are getting random reboots, the problem may stem from either the ROM itself, the kernel, or any other mods you are using. It's literally not possible for Helix Engine to cause such instability from 2.0.0.2-beta on-wards.
 
  • Like
Reactions: MAH3SH

AyieStyx

Senior Member
Feb 17, 2012
256
42
Batu Pahat
Yes, it's called first time startup. All profiles will be set currently set values of whatever values you've changed in a kernel tweaker app. Been like this for a while now. Backup and restore is extremely convenient for users to share their profile data or restore them after a data wipe.

I don't want to take anything from Spectrum app, I want to do my own things.
i understand your standing. but im not asking for you to follow spectrum app, just a convenient features to 'copy' current profile into helix.

another suggestion is could we had control for big and little cpu governors? since we has controls for big and little frequency, why not the cpu governors too right?
 

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
i understand your standing. but im not asking for you to follow spectrum app, just a convenient features to 'copy' current profile into helix.

another suggestion is could we had control for big and little cpu governors? since we has controls for big and little frequency, why not the cpu governors too right?

It has NEVER been recommended at all to use different governors for different clusters. It could cause instability or problems with task migration. @Mostafa Wael can give a more in-depth explaination.
 

RogerF81

Senior Member
Oct 14, 2015
1,985
1,415
Stuttgart
Xiaomi Poco F3
Google Pixel 8 Pro
i understand your standing. but im not asking for you to follow spectrum app, just a convenient features to 'copy' current profile into helix.

another suggestion is could we had control for big and little cpu governors? since we has controls for big and little frequency, why not the cpu governors too right?

Well, @Mostafa Wael's explanation is the following:

There are just 2 main reasons, why it isn't recommended at all to use two different governors for different clusters:

1- it may affect the system stability and cause crashes
2- it is not ideal for the load balancing.

I hope this helps.
 
  • Like
Reactions: ZeroInfinity

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
3.0.0.0-beta will be released later today! Here is a full changelog in the meantime!

3.0.0.0-beta full changelog:
- [PREMIUM] New Machine Learning Mode!
- Added User Experience Program in Settings
- Android P support
- Remove kernel type detection as it is impossible to know for sure in the OS
- App Lists renamed to App Engine and overhauled UI
- Significant optimizations made to the App Engine
- Package name config files are now stored in XML format
- Add automatic whitelisting SystemUI, Google Play Services, Google Play Games
- Added multi-select feature to App Engine UI
- Added two types of sorting options in App Engine customization page
- Added GPU support for SDM845
- Added CPU scheduler tunables
- Added Input Boost tunables for devices that support it
- Added Schedtune boost tunables including dynamic boost for kernels that support it
- Optimized UI for smaller screens
- Overhauled UI
- Added extra items for quick access in the Home page
- Fix CAF Boost Framework fix not rebooting into TWRP when fsync is disabled
- Added Firebase Cloud Messaging
- CPU Frequency cards are now split between little and big clusters (if you\'re on a multi cluster chipset)
- Temporarily removed auto-fix for CAF Boost Framework, now there are instructions for you to do it manually
- Fix SoC model detection for Exynos chipsets
- Misc fixes for Samsung devices
- Backup and restore profile data now free!
- Backup and restore app lists now free!

[PREMIUM] Machine Learning Mode
A completely new feature for Helix Engine v3! When users enable the User Expeirence Mode, their profile data and app engine data will be uploaded to a server. An algorithm will calculate the most popular values for each tunable and will adjust the recommended value accordingly. It will become more and more accurate over time!

Privacy Policy for User Experience Program: The only data collected will be your profile data and app engine data. Absolutely no other data will be collected, especially data which can be used to uniquely identify you or your device. All data collected will be completely anonymous.

NOTE: Machine Learning Mode for profile data will not work for everyone. If your chipset is not in the database yet, you will have to configure it yourself. You will know this when you enable Machine Learning Mode and your profile data has not changed. Please enable User Experience Mode after configuring your profile data to add your chipset into the Machine Learning Mode's database.

Multi-select feature in App Engine:
Check the boxes of the apps you want to batch apply another profile to. Use the spinner in any checked app card to batch apply for every other checked apps.

Backup and restore features for profile data and app engine data ARE NOW FREE!
These are now part of the free version of Helix Engine. This is because Machine Learning Mode has now completely replaced pre-defined profile data, so free users will always have to configure their profiles themselves. However, with the backup and restore profile data and app engine data, it is still possible for anyone to share their engine_data.xml and app_list_data.xml configs around for other people to use.

New permissions:
android.permission.RECEIVE_BOOT_COMPLETED - In order for Job Scheduler to continue syncing even after reboots so you won't have to open Helix Engine in order to initiate the Job Scheduler.
android.permission.INTERNET - To communicate with a server where Machine Learning Mode and User Experience Program features sync to and from.

YOU MUST WIPE APP DATA FOR HELIX ENGINE IF YOU HAVE ANY OF THE PREVIOUS BUILDS INSTALLED!!! This will be the last time you'll ever have to do this, as I will not be adding anymore new tunables in the future.

Download attached in this post along with my own profile data for MSM8998 devices ONLY and my app engine data which is available for anyone.

EDIT 24/07/2018: Rolling out to the play store now!
 

Attachments

  • app_list_data.xml
    4.2 KB · Views: 548
  • engine_data.xml
    3.8 KB · Views: 594
  • helix-engine-3.0.0.0-beta.apk
    2 MB · Views: 1,097
Last edited:

Kallmeidroppe

Senior Member
Feb 13, 2016
99
22
New update installed. Everything works eine. Looks really great. But one question, is it possible to disable the Maschine learning warning? Everytime you open an profile you geht thus Massage...
 

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
New update installed. Everything works eine. Looks really great. But one question, is it possible to disable the Maschine learning warning? Everytime you open an profile you geht thus Massage...
It's there so users know that changing the values while machine learning is enabled is not recommended because their values will be overwritten when the sync takes place. I would say, if you want to use your own values, enable Machine Learning once and then disable it, then configure your own values from the recommended profile data given by the machine learning mode. Or else if you just keep machine learning on, it'll just overwrite to whatever the recommended value is. If this really annoys people, I will make another build before the google play roll-out which shows the warning once after machine learning is enabled.
 

kenosis

Senior Member
Apr 7, 2008
1,389
182
Yangon, Myanmar
Testing 3.0 Beta on HTC U11+
 

Attachments

  • Screenshot_20180722-001300.png
    Screenshot_20180722-001300.png
    190.2 KB · Views: 430

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 :)