yashsingh1/xdaforums huggingface dataset:
[General Questions and Answers] rootblulifex3:
All is good now i found a full stock rom here: https://blogthetech.com/flash-file-blu-life-one-x3-l0150ww-firmware-download-stock-rom/

Problem was i used a old supersu zip version that wasn't compatible with andriod 7.0, for anyone reading the tutorial, make sure you use latest supersu zip version then check root status with a root checker app. Thanks jasonstackhouse and original authors for your help!!
[General Questions and Answers] rootblulifex3:
Another bonus to anyone rooting this device, instead of flashing supersu zip flash the magisk zip it hides the root so you can receive ota security updates, install banking apps and such. Zip file found at: magisk manager dot com
[General Questions and Answers] Lusty Rugnuts:
{DELETED} See post #52 in this thread for an update.
[General Questions and Answers] Lusty Rugnuts:
Ah, I figured out what was causing the boot loop when removing pre-installed packages. I'm now working my way through the list of apps to be uninstalled. I'll update with full instructions when I'm done.

What I'm doing is removing as much Google stuff as possible while still having a functional Google Play Store. I'm installing alternate apps to replace the Google apps, where necessary. The main aim is to stop the Google corporate spyware from gathering data... which it does even if you turn off all data-gathering as discussed above. This will improve battery run-time and improve privacy.
[General Questions and Answers] Lusty Rugnuts:
Should we lose the new-twrp-blox3.img at its original server, I took the liberty of inserting it into the Wayback Machine, so it'll be there pretty much forever:

https://web.archive.org/web/2019042.../18xAoFjZcZsgaJUJXZq8APQTTvm6mXO9c?e=download
[General Questions and Answers] Lusty Rugnuts:
Heh, the phone feels just as fast now with the CPU pinned to a maximum 299 MHz as it used to run with the CPU able to go to 1.3 GHz. That'll save battery power, for sure. It takes about 45 minutes with the screen on before the battery dips from 100% to 99%.

I did an idle-drain test:

AFWall+ in Lockdown mode (no connections)

CPU limited to 299MHz maximum

Battery Saver on

Phone sat for 4 hours with screen off.

Starting battery voltage:	4362 mV	(100%)

Ending battery voltage:	4321 mV	(100%)

So in 4 hours of sitting idle, the phone only dropped battery voltage by 41 mV.
[General Questions and Answers] Lusty Rugnuts:
Post removed due to space limitations. See further down the thread.
[General Questions and Answers] Lusty Rugnuts:
To set your own wallpaper:

On your computer, get whatever image you want to use, and in an image editor, ensure its 1920 pixels tall and 1080 pixels wide.

Save the image to c:\test as wallpaper.png

On your computer, in File Manager, go to c:\test and rename wallpaper.png to just 'wallpaper' (ie: remove the file extension).

Boot your phone normally and connect it to USB.

On your computer, in an Administrator-privilege command prompt, issue the command: adb reboot recovery

On your phone, in TWRP Recovery Mode, select 'Mount', select all partitions.

Press the 'Back' icon to go back to the TWRP main screen.

In an Administrator-privilege command prompt on your computer, issue the following command:

adb push c:\test\wallpaper /data/system/users/0/wallpaper

On your phone, in TWRP Recovery Mode, press 'Reboot', then press 'System'.

When your phone boots, your new image will be the background.

I chose a solid black background. I was using DeviceInfo Live Wallpaper (as I'd used for years on my old phone), but adb logcat shows millions of errors:

04-27 15:38:10.891 1761 4570 D MALI : gles_state_set_error_internal:75: [MALI] GLES ctx: 0x7002d21688, error code:0x500

04-27 15:38:10.891 1761 4570 D MALI : gles_state_set_error_internal:76: [MALI] GLES error info: <cap> is not one of the accepted values

That's bound to drain the battery faster. And the developer of that app is no longer reachable, his listed email bounces.
[General Questions and Answers] Lusty Rugnuts:
I finally found a way of permanently turning off "Find My Device"... it's inbuilt to the user interface, but it's not intuitive.

Go to Settings > Google > Security > Find My Device > Turn it off

If you simply go to Settings > Security > Device Administrators and disable Find My Device, it'll re-enable itself upon reboot.
[General Questions and Answers] Lusty Rugnuts:
Very sneaky, Blu.

Ok, you know when you first get the phone, you've got all the pre-installed apps you don't want? I detailed a lot of it above. Well, Blu has one of those apps, and it sneakily reinstalls two of those apps even after the user has supposedly removed those apps.

So you go into Settings > Apps and discover that you can't really uninstall the Blu app. So you boot into TWRP Recovery Mode and delete the directory containing the Blu app. For good measure, you delete the Amazon and PrimeVideo folders.

So you think to yourself that Blu, Amazon and PrimeVideo are gone. Except they're not really gone even then.

In fact, even if you just disable the Blu app in Settings > Apps, you're going to have the same behavior described below.

The Blu app you tried to disable or uninstall in Settings > Apps, and which you deleted in TWRP Recovery Mode is merely a GUI for the real Blu app, which sits in the background, restoring Blu's advertising partner's (Amazon and PrimeVideo) apps on each boot. No, it doesn't restore the GUI part of those advertising partners' apps, just the stuff that runs in the background.... now why would they do that, I wonder? Are they playing ads in the background unbeknownst to the user, even as the user thinks they've uninstalled those apps?

How do I know this is taking place? Because the entries for Amazon and PrimeVideo kept showing up in the Dalvik Cache... the cache for programs that have run. I'd delete them, they'd show up, I'd delete them, they'd show up, on each and every boot.

Go to /system/vendor/operator/app

Delete ALL directories under that /app directory... the Blu .apk folder, the Amazon folder, the PrimeVideo folder, and the folder which is named with what looks like a date. All of it. /system/vendor/operator/app should now be empty. In fact, I deleted that /app folder, as well.

Then go to Dalvik cache and search all subfolders, delete all Blu, Amazon and PrimeVideo entries. If you've got Total Commander, do a search for PrimeVideo, Amazon and Blu and defenestrate them.

Reboot the phone.

Huh, how about that, my CPU utilization just dwindled to nearly nothing when the phone is idle. Now I can play my podcasts with the CPU pinned to 299 MHz maximum without any stutter.
[General Questions and Answers] Lusty Rugnuts:
There's an update for Xposed. It's a bit tricky to get it working, but it can be done on this phone. TopJohnWu repackaged the installer so it'd work on a wider array of devices without having to search for the right version of Xposed.

There's no need to uninstall the older version, it'll uninstall it.

Get the new installer from TopJohnWu here.

Install it and reboot.

It still won't be set up properly. You have to go to Settings > Apps > Xposed Installer > Storage, and move it to internal storage (if you've set your SD card as the default install destination, it'll be installed automatically to the SD card, which it doesn't like).

After that, you can open Xposed Installer and enable it, then enable the modules installed within it.
[General Questions and Answers] Lusty Rugnuts:
Firewall is in its "Lockdown" profile.

Running logcat like this:

c:\ADB>adb logcat -D -v long > c:\test\logcat.log

I don't have any apps open, the phone is sitting idle at the home screen.

Question:

What are these?

05-02 18:46:35.343 1871 6505 D AFWallXPosed: Attempted URL via DM Leak : https://dl.google.com/vision/1/creditcard/params_expdate_c45e5b7.dat

05-02 18:46:35.488 1871 6505 D AFWallXPosed: Attempted URL via DM Leak : https://dl.google.com/vision/1700/ocr/ocr_arm64_v8a.zip

I've got all Google components disabled in AFWall+ firewall... Google appears to be attempting to download something surreptitiously to my phone by using a "DM Leak", but I can't find anything about it in searching for that term.
[General Questions and Answers] Lusty Rugnuts:
Thank you for contacting BLU Products [ ref:_00D50BSXg._5001T1EMcgk:ref ]

An email exchange between myself and Blu, pertaining to Google attempting to push an 'updated' ROM to my phone, against my wishes, surreptitiously and without notification, and rebooting my phone at midnight each night in attempting to install that 'update'. Details in this thread above.

-----------------------------------------------------

>> I wrote:

>> My Blu Life One X3 phone has BLU_L0150WW_V7.0.04.13_GENERIC ROM. Are there any updates?

> BLU Products Support <service@bluproducts.com> wrote:

> We apologize for the inconvenience, at this time there are no updates available for your device.

That's strange, because Google Play Services via GoogleOtaBinder was attempting to push BLU_L0150WW_V7.0.04.14_GENERIC (which you've just confirmed doesn't exist), despite the fact that I've got "Automatic System Updates" turned off in Developer Options... I suspect it's because I'm rooted (TWRP as bootloader, Magisk as root), and I've stripped out most Google pre-installed apps and retracted many permissions which Google was using to collect personal information (collection and monetization of personal information being Google's modus operandi)... and they pushed that "new" ROM (likely the same ROM, but set so it restored Google's permissions) to get their apps and permissions back.

Did I mention they did so without notification, against my wishes, and that they rebooted my phone (without notification or permission) at midnight each night in attempting to install that 'new' ROM?

This doesn't bode well for the reputation of Blu by association with Google (not to mention Blu's hidden '/system/vendor/operator/app' app which kept restoring the Amazon and Prime Video pre-installed components, then running them in the background).

You'd best get your and Google's house in order... the California Attorney General and Electronic Frontier Foundation are already on the case. An update deleting the offending apps in /system/vendor/operator/app, a public statement by Blu and Google that you will no longer attempt to push software to a phone against the express wishes of that phone's owner, and a public and very sincere apology should do the trick.

-----------------------------------------------------

Blu sent an email back saying, to paraphrase, "Oh yeah! That update! Ha! We completely forgot about that one... nothing to see here. We reserve the right to push updates to our phones."

Color me suspicious that Blu wouldn't know about their own updates. I also reminded them that they're in violation of CA Penal Code 502(c) in trying to push unsolicited and unwanted software onto a phone, that it's not "their" phone, it's mine, and I'll administer it without their 'assistance'. I also thanked them for clearing up that it was Blu and not Google who was legally liable for pushing unsolicited and unwanted software to my phone despite 'Automatic System Updates' being disabled, which bricked the phone, necessitating a restore. I've not heard back from them again.
[General Questions and Answers] Lusty Rugnuts:
Heh... on this phone, you can tell which websites are using Google tracking... they're the websites which pause for a bit as they load, waiting for the Google data collection code to connect to Google servers, which it can't because I've got every single Google IP address blocked, inbound and outbound, in AFWall+'s default profile.

Nowadays, people must worry less about encrypting their phones and setting up lock screens and making up hard passwords... the phone is with you practically 24/7, no one is going to take it unless you've got a top-of-the-line model (and who would be dumb enough to shell out that kind of money?!). Certainly no one is going to want to steal my lowly Blu phone.

I have no lock screen, the device is unencrypted, I run no antivirus software (most of which are bogus anyway). If someone tries to steal the phone, they'll crawl away bloodied, if they crawl away at all. If the phone experiences a problem, I can just roll back to the backup I took a few days ago, and if the problem persists, I can roll back a little further.

No, what phone users must be concerned about nowadays is the theft and monetization of personal and personally-identifying data by corporations... and it appears some of those corporations (coughGooglecough) aren't averse to sneaking files onto a phone without alerting the phone's owner to what they're doing.

As an aside, both cameras on this phone are now covered by camera blinds. Rather than stick a piece of electrical tape over the lens (as I did with my old phone), which just gums up the lens with the tape's adhesive, I splurged for the couple of dollars to buy tiny sliding shutters which cover the lens. The screen-side one looks almost as if it were part of the phone itself, but the opposite-side one looks a bit clunky. I've got a metal one ordered which should be much better... the plastic ones can't be made too thin or they'll break easily. The metal one is thin and sized exactly to cover just the camera.
[General Questions and Answers] Lusty Rugnuts:
tcp_slow_start_after_idle

If set, provide RFC2861 behavior and time out the congestion window after an idle period. An idle period is defined at the current RTO.

If unset, the congestion window will not be timed out after an idle period.

Default: 1

adb pull /proc/sys/net/ipv4/tcp_slow_start_after_idle c:\test

Edit the file, change the one and only character in that file from '1' to '0'.

adb push c:\test\tcp_slow_start_after_idle /proc/sys/net/ipv4/tcp_slow_start_after_idle

I'm hoping that by holding onto the congestion window longer, over time all the call-outs to Google and crashlytics.com will exhaust the addresses they can use (all of which are blocked in AFWall+ default profile), and just give up. We'll see.
[General Questions and Answers] Lusty Rugnuts:
In:

/data/system/users/0/settings_secure.xml

is:

<setting id="78" name="allowed_geolocation_origins" value="http://www.google.com http://www.google.co.uk" package="com.google.android.gms" />

Which means:

https://developer.android.com/refer...tings.Secure.html#ALLOWED_GEOLOCATION_ORIGINS

ALLOWED_GEOLOCATION_ORIGINS

Origins for which browsers should allow geolocation by default. The value is a space-separated list of origins.

Set to:

<setting id="78" name="allowed_geolocation_origins" value="" package="com.google.android.gms" />

Also:

<setting id="198" name="location_providers_allowed" value="" package="com.android.systemui" />

<setting id="101" name="backup_enabled:com.android.calllogbackup" value="0" package="com.google.android.gms" />

I'm a dirty, rotten, no-good, mean and devious trickster, I tell ya. I set my firewall to "Lockdown" (which blocks all inbound and outbound data), then enable the WiFi... the components think they've got a clear shot to communicate with their servers, but they don't. Then I log them.

Usually, when the phone is sitting idle and nothing is running, it amounts to about 800 KB to 1.2 MB of log data per minute. The above settings dropped it to ~113 KB / minute, with no location tracking.
[General Questions and Answers] Lusty Rugnuts:
Huh... Google just gets sleazier and sleazier.

Google Domains hosts several podcast sites (feedburner.com, gimletmedia.com... check the reverse DNS, and you'll see the IP addresses are Google's), and the IP address ranges for those podcasts that I've seen range from 172.217.0.0 to 172.217.12.255.

Where do they host connectivitycheck.gstatic.com? Right there in amongst the podcasts, at 172.217.10.*. This means that if you listen to any podcasts from the major podcast providers, you will connect to Google so they can track you... unless you use the trick in my iptables files.

{UPDATE}

Actually, two tricks in my iptables files. I found a way to let an app communicate through the firewall by injecting the UID at the head of the iptables, so packets to that app are accepted before any other firewall rules can DROP or REJECT those packets. So I can block that IP CIDR range for everything except, in my case, my podcast app.

See my IPTables firewall scripts here.

See my DNS-over-HTTPS setup here.

{/UPDATE}
[General Questions and Answers] Lusty Rugnuts:
To Change Your Default DNS Servers

On your computer, at an Administrator-privilege command prompt, enter:

adb reboot recovery

Your phone will reboot into TWRP Recovery Mode.

Select "Mount", select all partitions.

Ensure "Mount system partition read-only" is unchecked.

Select the "Back" icon to the main TWRP screen.

Select "Advanced".

Select "File Manager"

Navigate to /system/etc

On your computer, at an Administrator-privilege command prompt, enter:

adb pull /system/etc/resolv.conf c:\test

Edit the resolv.conf file in c:\test, erasing:

nameserver 8.8.4.4

nameserver 8.8.8.8

and entering the nameservers of your choice... I'm using OpenNIC Tier 1 DNS servers:

https://servers.opennicproject.org/

In resolv.conf, type:

nameserver 161.97.219.84

nameserver 94.103.153.176

Save the file back to c:\test\resolv.conf, then at an Administrator-privilege command prompt on your computer, type:

adb push c:\test\resolv.conf /system/etc/resolv.conf

On your phone, press the "Back" icon twice to get to the Main TWRP screen.

Press "Reboot".

Press "System".

Note that this removes the default Google DNS servers and replaces them with a more privacy-oriented option, but AFWall+ automatically resets the DNS servers to OpenDNS, as discussed prior... so I'm setting up an AFWall+ script to change that.
[General Questions and Answers] Lusty Rugnuts:
This post deleted. See this post for an update.
[General Questions and Answers] Lusty Rugnuts:
Heh... whatever you do, do not delete /system/bin/goodixfingerprintd, even if you've uninstalled the Goodix fingerprint reader app... that binary file is the driver for the hardware buttons (the three controls along the bottom of the screen)... removing it removes your ability to use those controls.

And remember, when you're experimenting on your phone, always keep a series of backups that you can roll back to.
[General Questions and Answers] Lusty Rugnuts:
Android Doze Tweaks:

Boot your phone normally and let it settle down.

Plug the phone into your computer via USB.

In an Administrator-privilege command prompt, type:

adb shell "su -c 'pm disable --user 0 com.google.android.gms/.phenotype.service.sync.PhenotypeConfigurator'"

This disables Google Play Services from resetting your Doze settings.

adb shell dumpsys deviceidle

This shows you your current Doze settings

adb shell dumpsys deviceidle disable light

This disables Light Doze, forcing the phone to always go into Deep Doze.

adb shell settings delete global device_idle_constants

adb shell settings put global device_idle_constants light_after_inactive_to=0,light_pre_idle_to=0,light_idle_to=0,light_idle_factor=2.0,light_max_idle_to=0,light_idle_maintenance_min_budget=0,light_idle_maintenance_max_budget=0,min_light_maintenance_time=0,min_deep_maintenance_time=0,inactive_to=0,sensing_to=0,locating_to=0,location_accuracy=1000.0,motion_inactive_to=86400000,idle_after_inactive_to=0,idle_pending_to=0,max_idle_pending_to=0,idle_pending_factor=2.0,idle_to=86400000,max_idle_to=172800000,idle_factor=2.0,min_time_to_alarm=1000,max_temp_app_whitelist_duration=0,mms_temp_app_whitelist_duration=0,sms_temp_app_whitelist_duration=0,notification_whitelist_duration=0

This clears the Device Idle Constants, then sets them such that it quickly drops into Deep Doze. It'll stay in that state for up to a full day. It also disregards motion and thus stays in Deep Doze when the phone is moved. Alarms, however, should still be able to get a WakeLock and thus continue to work.

And for a few more tweaks:

adb pull /data/system/users/0/settings_global.xml c:\test

Edit the setting:

<setting id="116" name="low_power_trigger_level" value="15" package="com.android.settings" />

To:

<setting id="116" name="low_power_trigger_level" value="99" package="com.android.settings" />

Now your Battery Saver will kick in as soon as your battery dips below 100%. You no longer have to remember to enable it.

If you don't want your phone's screen to time-out and turn off when the phone is plugged into USB:

<setting id="440" name="stay_on_while_plugged_in" value="3" package="com.android.settings" />

To finish up disabling aGPS (assisted GPS) in the above post:

<setting id="87" name="assisted_gps_enabled" value="0" package="com.google.android.gsf" />

Save the file, then:

adb push c:\test\settings_global.xml /data/system/users/0/settings_global.xml
[General Questions and Answers] WarHorse77:
y'all make this sound so easy and i cant even get out of the starting gate......i've had no luck whatsoever trying to get sp flash tools to work in linux it does absolutely nothing for hours even after adding a blacklist file. ive been using linux for years and still call myself a novice but i'm tired of banging my head on a concrete block i'm ready to tape a stick of dynamite to this phone.
[General Questions and Answers] Lusty Rugnuts:
Pro-tip: If you're running Nebulo, the DNS-over-HTTPS / DNS-over-TLS app, remember that it's still in beta, so there'll be bugs.

One bug I uncovered is that sometimes the app 'forgets' which apps its supposed to do DNS resolution for, apparently. Going into the Settings to the app list and pressing 'Ok' (even if you haven't made any changes), gets it working again. Bug report is already in.

{UPDATE}

Nebulo isn't quite ready for prime-time yet... it's sending seemingly random jibberish DNS requests and not resolving legitimate DNS requests. It'll get there, don't worry.... but if you're not willing to submit bug reports, wait a bit.

{/UPDATE}

{UPDATE 2}

Ah, those random jibberish DNS requests are generated by Brave Browser (all Chromium browsers, in fact) as means of testing connectivity and DNS hijacking.

{/UPDATE2}

But do keep in mind that this is a very important app... it encrypts your DNS requests and sends them over HTTPS, so you can't get a man-in-the-middle attack, whoever is providing your network connection can't watch everything you do, etc.

So if you can, use it and submit bug reports.
[General Questions and Answers] Lusty Rugnuts:
Pro-tip: If you've used your HOSTS file to block advertising servers, you've also likely noticed that (on this phone, at least) the /system/etc/hosts file keeps getting overwritten and set back to just 127.0.0.1 localhost and ::1 ip6-localhost.

Frustrating, but fixable. Push your hosts file from your computer to both:

adb push c:\test\bluwall\hosts /data/adb/modules/hosts/system/etc/hosts

adb push c:\test\bluwall\hosts /system/etc/hosts

That first one is where the real hosts file is saved, and it overwrites the second one. So to make your changes stick, push to both of them. I do so via the script in the next post.