[Android Apps and Games] AragonX:
OnePlus 3T report

Thanks for the app, I find it much more convenient than the magisk modules as I'm not really a fan of command line interface.

I've been looking for reports related to OnePlus devices on this thread and not seen so many, so after testing this app on my OnePlus 3T (OOS 5.0.6 / A8.0) I decided to share my view and results here with a bit more details and a solution that may work for some people.

I hope this may be especially useful as I believe I'm seeing the same behavior that was reported here for an OP5T, which means this may be a common behavior for Oneplus devices (OP6 may be an exception though):

https://xdaforums.com/showpost.php?p=77811404&postcount=2007

So to be clear from the start my impression is this app has issues on most/all OP 3(T) & 5(T) devices, although I believe it's not because of BCL, it's just the way the "control file" works. I found something that works for me though...

Getting to the actual report the BCL app finds 3 control files on my phone but only one actually works, the universal "charging_enabled", so no alternatives here.

Meaning it is able to turn charging ON and OFF with no issues, however the turn ON levels are only being followed if the phone is kept awake.

If the phone sleeps, as normally is the case, charging is re-enabled on my phone somewhere between 5.5min and 7min after it was disabled by the app.

Yes there is some time variation there, but it does not depend on the charge level. Leaving the phone to sleep normally it re-enables charging with a 79% reading (turned off at 80%),

while if the phone is sleeping with the flash ON it does it at 78% with the same delay.

This is also consistent with some reports I've seen that the battery level is actualy being kept constant by the app, and I wish it truly was the mode that is triggered at 100% (battery current kept minimal as the phone draws current from the charger), but we're not that lucky here and what actually results with BCL for my case are micro charge cycles that are likely more weary to the battery than a full 100% charge.

In more detail, this is because what the "charging_enabled" control triggers are not exactly "charge start/complete" events but "cable plug/unplug", so the phone wakes up with the screen on (also consistent with other reports). And if you're like me having the display sleep configured at 2 min you're having ~7 min cycles (~50sec charge + 5.5 to 7min discharge) with 2 min screen on drawing from the battery. Considering this goes on for the whole night, even with 1min timeout it's quite sufficient power draw to likely do more harm than good.

Now since my phone does some funny things with the flash LED as well after a similar time period (as in turning it off with no reason, consistently and only in sleep mode and only if it was turned on with a certain app) I have clear reasons to suspect oneplus is doing some "sanity checks" in the background while the phone is sleeping and bringing configurations back to "normal". So I don't think BCL or any other app can do much about it...

Related to this, as many people reading this probably already know, there are a couple of other solutions consisting of magisk modules, which are doing more or less the same thing as BCL.

And as my findings are they are sometimes reported to work a bit better than BCL for oneplus, but there are issues with them too such as the one reported here:

https://xdaforums.com/showpost.php?p=77557702&postcount=1332

This post basically reports the phone will have battery drain after the charging is turned off and until the cable is disconnected, due to specific wakelock.

My take is these modules seem to employ a bit more aggresive control method than BCL, such as periodically writing 0 to the control file, but this is not necessarily better as there seems to be some contention with oneplus' process, resulting in "glitches" and other issues (noticed some of these even with BCL). In any case they don't seem to be operating very well with OP3/5 either...

So what solution I'm using? May not be on everyone's liking but it works quite well for me: it's a hardware-aided solution, using one of those USB cables that besides displaying voltage and current can control the charging time. Yes the cable can control charging time by itself but it's in multiples of 1h, which for a fast charge (1.5A, not dash) it means about 40%/h for OP3T, so "resolution" is quite low and inconvenient to configure. Unless you want to slow charge at 0.5A which I'm not really considering so I'm not actually proposing to use the cable's feature, the "trick" is to use it with BCL.

Because what the cable does right is when it detects there's no load (charging disconnected) it turns off the power and this happens in exactly 1 min.

That's precisely what BCL needs here for my OP3, it disconnects the phone way before it can re-enable charging (earliest @ 5min in my case) and eliminates all difficulties the app may have in keeping charging off with the cable plugged in. The inconvenient is you don't have the turn on feature, but this is generally needed only if you're using the phone in always on mode, like in the car, in which case I found BCL alone to be working just fine.

I'm using this method for a while now with no issues, if anyone finds this useful and is interested in the cable I'll mention it in a separate post (unless considered advertising).