[NO ROOT][OOS10.3.3] Using ANY app parallelly without Parallel Space or Parallel Apps - OnePlus 7 Guides, News, & Discussion

I moved to ProtonMail from GMail a few years ago due to privacy issues. But ProtonMail app on android has always lacked a very important feature. Multiple accounts.
Parallel Apps on OOS and Parallel Space do exist, but I have never been able to add more than a few basic apps in it. But i figured something out that works for me. There might be other ways, but this is what I have done.
Phone tested here: OnePlus 7 (OOS 10.3.3). Should work for most other phones.
Prerequisites:
1. Backup. Always backup your phone before trying anything new.
2. ADB.
3. Aurora app store apk file. [You can finf the apk on the official XDA Thread for the app]
Process:
1. Connect the Phone to the computer and check whether adb is setup properly. If there is a device, it is connected properly and you can continue.
Code:
[email protected]:~$ adb devices
List of devices attached
24b61df3 device
2. Now that its connected, we need to access the adb shell.
Type adb -d shell to access the android shell and execute the rest of the steps.
Code:
[email protected]:~$ adb -d shell
OnePlus7:/ $
3. Create a new user. Put your desired username instead of <username>
Code:
OnePlus7:/ $ pm create-user --profileOf 0 --managed <username>
Success: created user id 10
If successful, the ID of new user (usually 10 or above) will be displayed.
You can check if the user was successfully created by execute:
[cods]
OnePlus7:/ $ pm list users
Users:
UserInfo{0wnerr:13} running
UserInfo{10:<username>:20} running
[/code]
4. Start the new created user
Code:
OnePlus7:/ $ am start-user 10
Success: user started
5. In a few seconds, you can see a work profile in the application drawer.
Reboot the phone.
Basically you have an entire set of new apps in this new profile (with a briefcase sticker on the icon), including a new Play Store, and all other system apps. And there is no need to logout and login between profiles anymore.
6. Now you can install apps on this user using:
Code:
adb install --user <user id> <package name>
7. Sadly due to a bug in Play Store, if you try to download apps in the new profile that already exist in the root profile, it gives you an error.
Fortunately there is a work around. We install the completely safe and open source Aurora store app.
Code:
adb install --user <user id> aurora.apk
You can now use this store to download any app and create a second account.
Alternatively, you can also download the apks from apkmirror and install them using adb.
Pro Tip: To make things easier, go to Settings -> Apps & Notifications -> See All -> Filter using “Work” and then disable all the system apps that you dont need, like OG Play store, since it wont work anyway.

So you just took this already existing Guide and pasted here without providing the source?
https://www.xda-developers.com/add-any-app-oxygenos-parallel-apps-space-oneplus-phones/

Aswin08 said:
So you just took this already existing Guide and pasted here without providing the source?
https://www.xda-developers.com/add-any-app-oxygenos-parallel-apps-space-oneplus-phones/
Click to expand...
Click to collapse
This guide is different. Does not create a seperate section (work profile)
It installs apps in the normal app drawer with a small badge to differentiate. What i explained creates a seperare app drawer alltogether. Plus that article has not worked for me on 3 oneplus devices that I tried. Hence i did not say that i was inspired by that article.
But if it is still required, I will mention it.

metal_head1 said:
This guide is different. Does not create a seperate section (work profile)
It installs apps in the normal app drawer with a small badge to differentiate. What i explained creates a seperare app drawer alltogether. Plus that article has not worked for me on 3 oneplus devices that I tried. Hence i did not say that i was inspired by that article.
Click to expand...
Click to collapse
Okay, fine thn. :good:

Related

Bloatware and beyond (removal)

Hello so im just making this post to inform some people who are scared to disable certain things that a lot more can be done with the disable feature then just alleviated bloatware.
So far I've disabled sense launcher and I'm currently only using launcher pro. I've also disabled everything with the word twitter in it lol.
One of my pet peeves is redundent data so I was able to disable htc sense's facebook and just download the facebook app which kicks its asssss anyway.
I've disabled the lock screen however it did not actually disable the lockscreen, no idea what that lockscreen.apk is doing but i still have it disabled.
Here is a list of my disabled packages.
package:com.htc.fm
package:com.android.browser
package:com.htc.rosiewidgets.datastrip
package:com.htc.widget3d.watch
package:com.htc.lockscreen
package:com.htc.appsharing
package:com.htc.idlescreen.stock
package:com.logmein.rescue
package:com.htc.Sync3DWidget
package:com.telenav.app.android.telenav
package:com.htc.connectedMedia
package:com.htc.streamplayer
package:com.htc.clock3dwidget
package:com.mobitv.client.tmobiletvhd
package:com.htc.android.htcsetupwizard
package:com.htc.wdm
package:com.htc.FMRadioWidget
package:com.htc.htccompressviewer
package:com.htc.widget3d.weather
package:com.omnifone.android.app.htclistenstore
package:com.htc.htcsettingwidgets
package:com.android.setupwizard
package:com.htc.android.Stock
package:com.htc.rosiewidgets.photogridwidget3d
package:com.htc.rosiewidgets.powerstrip
package:com.android.protips
package:com.htc.friendstream
package:com.htc.rosiewidgets.tip
package:com.htc.MusicWidget3D
package:com.voxmobili.sync.MobileBackup2
package:com.htc.rosiewidgets.screenbrightness
package:com.muvee.video.trimer
package:com.qiktmobile.android
package:com.tmobile.vvm.application
package:com.htc.ereader.widget3d
package:com.htc.htcmailwidgets
package:com.htc.htctwitter
package:com.westtek.jcp
package:com.sdgtl.watch.pyramid
package:com.htc.feedback
package:com.htc.android.fusion.StockWidget
package:com.htc.mysketcher
package:com.android.magicsmoke
package:com.htc.idlescreen.socialnetwork
package:com.htc.launcher
package:com.htc.cs
package:com.htc.android.teeter
package:com.slacker.radio
package:com.htc.FriendStream3DWidget
package:com.htc.recommend
package:com.nuance.nmc.sihome
package:com.htc.Trends3DWidget
package:com.htc.photowidget3d
package:com.htc.Twitter3DWidget
package:com.logmein.rescuesecurity
package:com.htc.socialnetwork.facebook
package:com.htc.socialnetwork.flickr
package:com.gameloft.android.GAND.GloftNOHP
package:com.htc.fusion.htcbookmarkwidget
package:com.htc.htccontactwidgets_3d_fusion
package:com.tmobile.apppack
moral of my story, you got a lot of room to play around with. My phone runs incredible fast now and the battery life has increased but I also just bought a 1900mAh battery and popped that in.
Let me know if anyone else can add to this list. I plan on disabling the SMS client and solely using a third party in the very near future. Any words about this? Thanks!
Noob question, how exactly do you disabled that? I see some other post saying they can disable it but never really get into how they go around doing it. I'm also new to android T_T.
I had trouble at first too.
first google this: setting up android SDK for windows
Then since they probably won't tell you this, at the step where they tell you to download google usb drivers, do it anyway (can't hurt) but immediately after that- download HTC sync, and install just to get all the drivers you need for your HTC phone onto windows. At that point you want to then close HTC sync from your running applications to avoid a server out of date error in command prompt (this will get a lot easier to understand once you have the sdk tutorial infront of your face)
Once sdk is all set up and you can access your device (you will try to run adb shell in command promp in windows and you will get a $) You can go to the dev section and look at the fre3vo post.
From here you can drop the fre3vo file into C:/ and the first command in command prompt will be
adb push C:/fre3vo /data/local/tmp
- the C:\fre3vo is where the file is located on your computer and the /data/local/tmp is where your moving it onto the android device.
Next command is
adb shell chmod 777 /data/local/tmp/fre3vo - to my understanding this is just changing permissions so you can run the file thru our terminal set up.
Last command just runs the binary and is adb shell /data/local/tmp/fre3vo
After that you should be able to run the fre3vo exploit and it will kick you back to your original command promp something like C:\users\your name
Now comes the easy part: at this point type in adb shell and you will get a # sign which means you achieved temp root. The following commands will help and should only be ran after you see the # symbol because these are commands for android on your phone, not the ADB program we used to just place the fre3vo file onto the phone.
pm list packages - this shows all packages installed
pm disable (package name) use the package name from the list above where the brackets are but exclude the brackets
pm enable (package name) will enable the package incase your phone starts to bug
pm list packages -d -this will show you which packages are disabled and yes keep the minus sign infront of the d.
PM me if you have trouble.
alright i'll try to do this right now =) thanks a lot! c how it goes~
ignore post

GUIDE: How to avoid the Captive Portal Checkin to Google

Dear XDA community,
this my first own thread and guide so please be forbear with me
And i hope i choose the right section
As the topic in the thread says it handles about the Captive Portal Checkin done by Android.
So first some general info about this.
1. What is the Captive Portal Checkin?
Every time your android phone connects to the internet via mobile connection or wlan it sends a request to the following url:
http://connectivitycheck.gstatic.com (Google URL).
After that your gets device gets http 204 answer from the mentioned url and at that point the x-symbol at your network icon in the status bar disappears.
The reason for that behavior is that Android wants to be sure that your connection has internet access.
If you block that request via AfWall for example the dns fails in some cases and you can't go into the Internet.
Silly.
2. Why is this problematic?
That's a good question because this answer from Google doesn't much hold data. But every time when this connection is done Google get the following information:
- IP-adress
- Time of the internet access
- the Browser which you use
In my case i use custom roms and no Gapps to avoid Google as much as i can. So i don't want that "ping" to Google.
That's the reason why i searched for possibilitys to get rid of this ping. And thanks to a german security and privacy specalist i found a possibilty to avoid the ping to Google and have working Internet, too.
3. What did that guy do?
Very simple. He just started his own Captive Portal Checkin Service. So no need for Google anymore
WHAT YOU NEED:
- Computer with installed ADB
- Active USB Debugging at your phone
- At least Android 7
TESTED ON:
I tested his instructions on my old Xperia Z3 phone (CarbonROM 7.0 based on Android 9, Custom Rom).
IMPORTANT:
You need to execute the commands with a booted system (valid for both posts where i write the instructions). It DOESN'T work in the terminal of recoveries (e.g. twrp).
Thanks @jaysir for the information.
INSTRUCTIONS:
Android 7:
1. Connect the phone with your computer
2. Activate ADB and test the connection with the "adb devices" command. If your phone shows up go to step 3.
3. Execute these commands in your terminal:
=> adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de" '
=> adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de" '
Android 8 and 9:
1. Connect the phone with your computer
2. Activate ADB and test the connection with the "adb devices" command. If your phone shows up go to step 3.
3. Execute these commands in your terminal:
=> adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de" '
=> adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de" '
=> adb shell 'settings put global captive_portal_fallback_url "http://captiveportal.kuketz.de" '
=> adb shell 'settings put global captive_portal_other_fallback_urls "http://captiveportal.kuketz.de" '
Well that's it. When you want to revert back just execute the commands again with this url:
http command: http://connectivitycheck.gstatic.com/generate_204
https command:
https://connectivitycheck.gstatic.com/generate_204
Link to the source:
https://www.kuketz-blog.de/android-...204-http-antwort-von-captiveportal-kuketz-de/
If i make any typos tell me
Thanks again to the german security researcher and his community there is a way to deactivate the captive portal checkin completly.
It works on Android 7 and Android 8.1/9. But in comparision to the method in my first post this needs root access on your phone.
For all new users:
I recommend Magisk to gain root.
So now the instructions:
For Android 8/9:
1. Open a terminal on your phone (via terminal apps).
2. Type the following command:
- su
- su
- pm disable com.android.captiveportallogin
- settings put global captive_portal_detection_enabled 0
- settings put global captive_portal_server localhost
- settings put global captive_portal_mode 0
3. Then reboot your phone (via hardware buttons, system or terminal app).
For Android 7:
1. Open a terminal on your phone (via terminal apps).
2. Type the following commands:
- su
- settings put global captive_portal_detection_enabled 0
- settings put global captive_portal_server localhost
- settings put global captive_portal_mode 0
3. Then reboot your phone (via hardware buttons, system or terminal app).
Link to Source
https://www.kuketz-blog.de/empfehlungsecke/#captive-portal
Very nice and very important tutorial!
Just for completeness; and I don't claim and definitely don't have a copyright. I reported these procedures already here end of April in the thread "Enhanced Privacy, Security and Battery Duration! My Measures...". I mentioned it also once here in the AFWall+ thread.
I'm very glad that these procedures get repeated and repeated again. From my personal point of view it's so important to develop the stance to not allow Google to collect our data. I've subscribed to Mike Kuketz and am very grateful for his job and dedication.
Oswald Boelcke said:
Very nice and very important tutorial!
Just for completeness; and I don't claim and definitely don't have a copyright. I reported these procedures already here end of April in the thread "Enhanced Privacy, Security and Battery Duration! My Measures...". I mentioned it also once here in the AFWall+ thread.
I'm very glad that these procedures get repeated and repeated again. From my personal point of view it's so important to develop the stance to not allow Google to collect our data. I've subscribed to Mike Kuketz and am very grateful for his job and dedication.
Click to expand...
Click to collapse
I agree to you. It's a pity that so much people don't care about it.
I must admit i forgot to search in forum whether the instructions was already posted but as you said every mention helps.
Thanks, however, not working on pixel experience rom.
Update:
Seems no settings command under ADB shell, worked when turning on Usb debugging.
jaysir said:
Thanks, however, not working on pixel experience rom.
seems no settings command under ADB shell
Click to expand...
Click to collapse
Thx for your info. And i will try it on my old z3 with the custom rom which you mentioned.
I know there is a Android 9 based Pixel Experience for the z3.
Will report then.
dhacke said:
Thx for your info. And i will try it on my old z3 with the custom rom which you mentioned.
I know there is a Android 9 based Pixel Experience for the z3.
Will report then.
Click to expand...
Click to collapse
Sorry, I did not make myself clear.
It just not working under recovery mode.
After booting to the system and opening the USB debugging, it is working.
jaysir said:
Sorry, I did not make myself clear.
It just not working under recovery mode.
After booting to the system and opening the USB debugging, it is working.
Click to expand...
Click to collapse
Good to know (and i'm happy that now everything works)
I will edit the guide and add your information to it.
Thanks.
Thanks dhacke for all this information.
I got here from a link on an XDA forum for the Huawei Watch 2 LTE smartwatch. Do you know if this can be done to the watch as well?
ajlajluk said:
Thanks dhacke for all this information.
I got here from a link on an XDA forum for the Huawei Watch 2 LTE smartwatch. Do you know if this can be done to the watch as well?
Click to expand...
Click to collapse
As far as i see it the adb method (post 1) could working because according to the Internet the device runs Wear OS which is basically a android version for smartwatches.
So in theory you can activate USB debugging and redirect the captive portal to mike kuketz service as long as the commands are accepted.
Regarding method 2 i can't say anything because i don't own a smartwatch and have zero knowledge whether root is possible/how it is done on those smartwatches (which is needed for that method).
dhacke said:
As far as i see it the adb method (post 1) could working because according to the Internet the device runs Wear OS which is basically a android version for smartwatches.
So in theory you can activate USB debugging and redirect the captive portal to mike kuketz service as long as the commands are accepted.
Regarding method 2 i can't say anything because i don't own a smartwatch and have zero knowledge whether root is possible/how it is done on those smartwatches (which is needed for that method).
Click to expand...
Click to collapse
Just as you said, I enabled adb debugging, opened a terminal session from my mac to the watch and sent the commands from version 1 and they were both accepted. I should be able to check if it has worked tomorrow so will keep everyone updated when I've tested it.
OK. My watch appeared to connect to wifi but then said "No Internet".
I've now done the same mod to my phone, deleted the supermarket wifi I'm trying to connect my watch to from both the watch and the phone and will try again. I'm also wondering whether haveing BT on at the same time is causing a problem so I'll try with it on and then off and see if it makes any difference.
Thanks again for giving me hope I'll be able to connect WearOS 2 to a captive portal wifi network.
Further to above, unfortunately still no joy. Watch says "Connected" for the briefest moment then "No Internet" and won't go any further.
Never mind.
Thanks again for your work for the Android community.
Is it safe?
We are sending data to completely unknown server, that's why asking.
Datta258 said:
Is it safe?
We are sending data to completely unknown server, that's why asking.
Click to expand...
Click to collapse
In my opinion yes. The mentioned security expert has a good reputation afaik and he didn't make any things in the past which give me a reason to distrust him.
And in the near future he will work for german commissioner for data protection and freedom of Informationen. So i think he is a trustworthy person.
In the privacy policy on his site for the captive portal check service he writes that no information at all will be logged.
Of course you can ask him directly via e-mail if my words don't soothe you; i can only share my opinion about that guy
Thanks.
dhacke said:
For Android 8/9:
1. Open a terminal on your phone (via terminal apps).
2. Type the following command:
- su
- su
- pm disable com.android.captiveportallogin
- settings put global captive_portal_detection_enabled 0
- settings put global captive_portal_server localhost
- settings put global_portal_mode 0
3. Then reboot your phone (via hardware buttons, system or terminal app).
Click to expand...
Click to collapse
Does this still work on Pie?
On my rooted Galaxy Note 10 (Pie, 1st Sept. Patch) it does not.
Btw. there is a typo, should it be "settings put global captive_portal_mode 0"? This is what I tried. If I then check the values by "settings get..." I get
1: 0
2: localhost
3: 0
So the values were taken, but it still tries to connect to captiveportal.kuketz.de or google (whatever I have set). If I block it, I will get the exclamation next to the wifi symbol.
ZXR said:
Does this still work on Pie?
On my rooted Galaxy Note 10 (Pie, 1st Sept. Patch) it does not.
Btw. there is a typo, should it be "settings put global captive_portal_mode 0"? This is what I tried. If I then check the values by "settings get..." I get
1: 0
2: localhost
3: 0
So the values were taken, but it still tries to connect to captiveportal.kuketz.de or google (whatever I have set). If I block it, I will get the exclamation next to the wifi symbol.
Click to expand...
Click to collapse
Oh yes you are right. There was a typo. It must be 'settings put global captive_portal_mode 0'.
Now it's corrected. Thanks.
Did you make a reboot after execute the commands?
On my side it works on Pie too. I have a z3 with Lineage 16 and my device doesn't make the check.
When it' still not work after the reboot and the commands are typed in right (=> no issue notification in the terminal comes up) the Samsung stock rom could be the problem.
In that case i would recommend to use kuketz server.
dhacke said:
Did you make a reboot after execute the commands?
Click to expand...
Click to collapse
Yes and even after several reboots I get:
adb shell settings get global captive_portal_detection_enabled
0
adb shell settings get global captive_portal_server
localhost
adb shell settings get global captive_portal_mode
0
But, if not opened via script, I can see 185.163.119.132 (kuketz) being blocked by AFWall and the exclamation mark. So I open it with
$IPTABLES -A "afwall" -d 185.163.119.132 -m owner --uid-owner 1000 -p tcp -j ACCEPT
This works but I would prefer no C-P check.
One off-topic question:
Do you have an idea how to open the IP 0.1.0.1:0 in AFWall? It is used for VoLTE, but even I use th script line above (with 0.1.0.1) it still gets blocked. I have to open UID 1000 completely...
ZXR said:
Yes and even after several reboots I get:
adb shell settings get global captive_portal_detection_enabled
0
adb shell settings get global captive_portal_server
localhost
adb shell settings get global captive_portal_mode
0
But, if not opened via script, I can see 185.163.119.132 (kuketz) being blocked by AFWall and the exclamation mark. So I open it with
$IPTABLES -A "afwall" -d 185.163.119.132 -m owner --uid-owner 1000 -p tcp -j ACCEPT
This works but I would prefer no C-P check.
Click to expand...
Click to collapse
You wrote 'adb'. Does it mean that you tried the commands in the adb shell from your Computer with connected phone?
That could explain why it isn't working. The commands must be typed in directly on the phone for deactivation.
I use the App 'Terminal Emulator' from F-Droid for this.
Link: https://f-droid.org/app/jackpal.androidterm
You could try it with that app once more. Apart from that i'm running out of ideas atm.
ZXR said:
One off-topic question:
Do you have an idea how to open the IP 0.1.0.1:0 in AFWall? It is used for VoLTE, but even I use th script line above (with 0.1.0.1) it still gets blocked. I have to open UID 1000 completely...
Click to expand...
Click to collapse
Sorry, but no. I don't use VoLTE or Scripts in AfWall+.

Galaxy S8: moderate debloat script (no root)

Hi there!
From the Ultra debloat list provided by LegendM, I created (and started to document) my own list of packages to uninstall for user 0. It's totally reversible.
The list starts with packages that I re-enable (in case they were disabled) to get something stable and functioning, then proceeds to uninstall everything I do not use. There are some thing that were hard to figure out, so I started (late) to comment them, explaining what they do if it's not explicit.
Please comment here or on the Github gist if you know something that should be re-enabled or disabled. For that, I would need the package name and a short description as a comment. I'll update the gist directly! :good:
Debloat list: https://gist.github.com/gsurrel/40cc506ac7e31134a87be4ba01a71103
Comments
The camera works completely except not the "AR Emoji" thingy, though)
The Gallery works completely
The Phone/SMS work as expected
Disclaimer
I'm not responsible if this script eats your laundry or triggers anything unwanted. However, if it does, please report the problem. As far as I tested, "it works for me" so don't expect a full-time 5+ years maintenance
Little documentation
Uninstalling an app is as follows:
Code:
adb shell "pm uninstall -k --user 0 com.android.chrome"
Reinstalling is as follows:
Code:
adb shell "cmd package install-existing com.android.chrome"
Changelog:
2019-12-16: re-enabled some knox packages that get reactivated on each update
2020-01-14: slightly less strict disabling, but added a lot of documentation!
2020-01-21: OTA (Over The Air) update works (Samsung ITV region firmware), disabled the "Smart call provider" package
2020-02-11: Fix the "Learning battery habits", and group some packages per category
2020-02-22: FIxed (hopefully) the problem of Gallery's content identification using the package's shared uid
How do you use this?
Samsung Galaxy J8 Debloat 226 Packages - NO ROOT (Android 9 Samsung)
github.com /minhthienmap/j8y18lte_stable_packages
Remove Space
I contribute more bloatware for android 9 in galaxy j8
But it similar to galaxy s10
Federacion said:
How do you use this?
Click to expand...
Click to collapse
It depends on your system, exactly, but it boils down to:
Download and install the Android Command line tools: https://developer.android.com/studio/#command-tools
Open a command-line prompt and use ADB: https://developer.android.com/studio/command-line/adb
Run the shell script I provide (it's a bash script): https://duckduckgo.com/?q=run+bash+script
Alternatively, you can maybe (it work on Linux at least) select everything and paste it in your command line
nice work!
LamMinhThien said:
github.com /minhthienmap/j8y18lte_stable_packages
Remove Space
I contribute more bloatware for android 9 in galaxy j8
But it similar to galaxy s10
Click to expand...
Click to collapse
Did you remove it? The link brings me to a "404 Not Found" page.
I found a way to list system packages with more information
Code:
pm list packages -s -f -U -u
that shows a special UID for affps split between multiple packages that need to communicate and share data easily. Using this, I hopefully fixed the Gallery's feature for content identification (faces in pictures, but also detection of landscapes, food, etc. for an easy search in the photos)

[SCRIPT] Disable Tracking Services, version 1.8

Disable Tracking Services
This is a set of scripts that disables privacy invasive tracking components in all user installed apps (service/broadcast receiver/activity/content provider).
Root permission is required to run the scripts.
How it works:
UpdateExodus.sh downloads tracker names from Exodus Privacy.
DisableTracking.sh dumps a list of components of all installed apps, compare it against the list of trackers name, and disable those components (using the 'pm disable' command) if they match.
Download: Google Drive link
Check instructions.txt for details on how to use the scripts.
The latest version is 1.8.
You are recommended to backup your apps before running the scripts.
You are also recommended to do a full nandroid backup before running the scripts.
I hope you will find this useful
The script was originally based on the one here: https://forum.xda-developers.com/android/development/script-disable-fk-services-trackers-apps-t4074427
Instructions
Prerequisites:
Root permission is required.
You also need these extra binaries installed in a directory of $PATH (such as /system/xbin):
-aapt
-jq
You can download these binaries from the Termux app ( https://play.google.com/store/apps/details?id=com.termux )
You will also need busybox installed. Search for how to install it.
Method 1 (automatic) (experimental):
Run InstallReq.sh in Termux *as a normal user* (not as root)
i.e. run this command: bash /path/to/script/InstallReq.sh
It will check if aapt, jq, curl or sqlite3 are missing and automatically download them, then copy them to /system/xbin.
Method 2 (manual):
Run these commands in Termux:
pkg install aapt
pkg install jq
Copy them from /data/data/com.termux/files/usr/bin to a directory of $PATH
Then give them execution permission, e.g. "chmod +x /system/xbin/aapt"
To see what directories are in $PATH, run this command: "echo $PATH"
Note: if you've placed the binaries in /sbin, or you have installed Magisk,
the binaries will be deleted every reboot. You'll have to copy them again.
Note: aapt and jq must be downloaded from Termux and the Termux app must remain installed,
since the dependencies are stored in Termux's data folder.
------------------------------------------------------------
Usage:
-All scripts and txt files must be in the same directory as DisableTrackers.sh
You need a terminal emulator to run these scripts.
Personally I use "Terminal Emulator for Android" ( https://play.google.com/store/apps/details?id=jackpal.androidterm )
This terminal emulator lets you add launcher shortcuts. Quite convenient in my opinion.
Termux may also work, but I haven't tested it.
For first time usage, run UpdateExodus.sh first.
i.e. run this command: su -c sh /path/to/script/UpdateExodus.sh
If the script runs successfully, a MergedTrackers.txt will be created.
Then you can run DisableTrackers.sh AS SU to start disabling trackers. (root permission is required)
i.e. run this command: su -c sh /path/to/script/DisableTrackers.sh
By default, only third party apps are checked.
If you want to check for trackers in system apps as well, add 'sys' as the parameter.
i.e. run this command: su -c sh /path/to/script/DisableTrackers.sh sys
Not really recommended since it could theoretically mess up Google Play Services, though I can't confirm since I don't have it installed on my phone.
Note: if you've used version 1.4 or below and don't want the script to process all apps again, run CreateAppDB.sh.
It will create a ProcessedApps.db with records of all currently installed apps.
------------------------------------------------------------
Explanations:
UpdateExodus.sh will download a tracker list from Exodus Privacy, and merge it with CustomTrackers.txt (if it exists)
You can add your own trackers to CustomTrackers.txt. You may also write comments in this format: #(comment here)
DisableTracking.sh will dump a list of components (service/broadcast receiver/activity/content provider) of all installed apps,
compare it against the list of trackers in MergedTrackers.txt, and disable those components if they match.
It will save a list of already processed apps to a database file in the script's directory,
so they will not be processed twice when you run the script again (like maybe you've installed a new app and you want to disable its trackers by running the script).
Apps with trackers will be logged to AppsWithTrackers.txt.
exodustrackers.json is the raw list downloaded from Exodus Privacy.
MergedTrackers.txt contains the merged results of exodustrackers_extracted.txt and CustomTrackers.txt.
ProcessedApps.db contains a list of already processed apps. They will be skipped in the next run of DisableTrackers.sh.
whitelist.txt is a list of apps that will be skipped.
Update log
Version 1.5:
-DisableTracking.sh now uses a database to store processed app names and versions.
This means if an app was updated, it will check for trackers in the updated app again.
-If there was a deleted app, DisableTracking.sh will now delete its record from ProcessedApps.db automatically. No more manual deletion.
-Note: if you've used version 1.4 or below and don't want the script to process all apps again, run CreateAppDB.sh.
It will create a ProcessedApps.db with records of all currently installed apps.
Version 1.6:
-DisableTracking.sh now supports checking for trackers in system apps. Check the usage section for how to use.
-Improved logic of DisableTracking.sh to reduce problems. Thanks to hyborian for pointing them out.
-Added checks for root permission and presence of extra binaries.
-The new script 'InstallReq.sh' will automatically install missing extra binaries from Termux.
Check the prerequisites section for how to use.
-UpdateExodus.sh will no long generate exodustrackers_extracted.txt. The content is stored in memory instead of a file.
-MergeExodus.sh is no longer needed. The functions are...merged into UpdateExodus.sh.
Version 1.7:
-DisableTracking.sh now shows the app name as seen in the launcher when processing an app (will be empty if the app name is not in Engish)
-DisableTracking.sh will skip apps in whitelist.txt.
-UpdateExodus.sh now shows new tracker names that were not previously present in the old MergedTrackers.txt.
Version 1.8:
-Small fix in DisableTracking.sh that stops it from creating duplicated records in ProcessedApps.db
(in line 165, grep -qx is chnaged to grep -q)
If you've used version 1.6 or above, you are recommended to delete ProcessedApps.db located in the script's directory and run CreateAppDB.sh to regenerate a ProcessedApps.db, although the existing ProcessedApps.db with duplicated records may still work.
reserved 3
Thanks, fantastic tool
del
Hello I got a little issue with your tools ( it says to i need to verify my internet connection but I have wifi on. I have tried in mobile data still same ...
(When I open the web site manually it work but during the script execution I have this issue any other method?
Random-Tester said:
Hello I got a little issue with your tools ( it says to i need to verify my internet connection but I have wifi on. I have tried in mobile data still same ...
(When I open the web site manually it work but during the script execution I have this issue any other method?
Click to expand...
Click to collapse
Ok try running the script in attachment (remove .txt in the name), copy/screenshot the output and post it here.
steveglowplunk said:
Ok try running the script in attachment (remove .txt in the name), copy/screenshot the output and post it here.
Click to expand...
Click to collapse
Hi thnx for fast answers !! Unfortunately nothing new
I got this in terminal :
$ su
:/data/data/com.termux/files/home # /system/bin/UpdateExodus.sh
curl not found
wget not found
jq is a tracked alias for /sbin/jq
Checking connection with https://etip.exodus-privacy.eu.org/trackers/export
/system/bin/UpdateExodus.sh[26]: curl: inaccessible or not found
Network check status is empty
Unable to connect with https://etip.exodus-privacy.eu.org/trackers/export. Please check you internet connection.
No changes done.
Script will exit now.
Random-Tester said:
Hi thnx for fast answers !! Unfortunately nothing new
I got this in terminal :
$ su
:/data/data/com.termux/files/home # /system/bin/UpdateExodus.sh
curl not found
wget not found
jq is a tracked alias for /sbin/jq
Checking connection with https://etip.exodus-privacy.eu.org/trackers/export
/system/bin/UpdateExodus.sh[26]: curl: inaccessible or not found
Network check status is empty
Unable to connect with https://etip.exodus-privacy.eu.org/trackers/export. Please check you internet connection.
No changes done.
Script will exit now.
Click to expand...
Click to collapse
Yes, the purpose of the script was to find out missing binaries, and it says you're missing curl and wget. This could be because you don't have busybox installed (wget is included in busybox) and you're running stock rom (curl should be included in a custom rom such as LineageOS).
What you can do is download those binaries from Termux. (Use the command 'pkg install curl', same for wget), and copy them to /sbin, just like what you'd do with jq.
curl is used for checking connection status. wget is used for downloading the trackers json file.
After executing everything perfectly, I ran to a weird instance where everytime it scans an app, a command sqlite3: inaccessible or not found was shown. I was wondering if this shows because I performed disable f*ck services script first then this script? are they supposed to do the same? does that mean the apps I'm scanning right now already have their services/receivers disabled thats why disabletracking.sh can't detect them? thank you!
phantom146 said:
After executing everything perfectly, I ran to a weird instance where everytime it scans an app, a command sqlite3: inaccessible or not found was shown. I was wondering if this shows because I performed disable f*ck services script first then this script? are they supposed to do the same? does that mean the apps I'm scanning right now already have their services/receivers disabled thats why disabletracking.sh can't detect them? thank you!
Click to expand...
Click to collapse
That means sqlite3 is not installed (I thought it's supposed to be included in Android?). Verify it by running 'type sqlite3' in the terminal.
Maybe you can try downloading sqlite (without the 3) from Termux with the 'pkg install' command, then copy the downloaded binaries to /sbin (similar to what you'd do with jq). Or you can use version 1.4 for now.
sqlite3 is used for writing a database that stores processed apps names and versions, so that they will be skipped in the next run. The script will still disable tracking components that haven't been disabled already.
steveglowplunk said:
That means sqlite3 is not installed (I thought it's supposed to be included in Android?). Verify it by running 'type sqlite3' in the terminal.
Maybe you can try downloading sqlite (without the 3) from Termux with the 'pkg install' command, then copy the downloaded binaries to /sbin (similar to what you'd do with jq). Or you can use version 1.4 for now.
sqlite3 is used for writing a database that stores processed apps names and versions, so that they will be skipped in the next run. The script will still disable tracking components that haven't been disabled already.
Click to expand...
Click to collapse
This worked well. Thank you.
Do you plan on implementing something for sqlite, jq and aapt to stick on sbin for the next update?
Also, some of the apps I'm scanning shows:
Exception occured while executing:
java.lang.illegalArgumentException: component class bugsnag.com etc. Etc. Does not exist in bla bla app.
I assume exodus detected that a certain app has trackers and tries to disable it but since I used disablefohkservice script before this, I guess it was already disabled and disabletracking.sh can't find it now?
phantom146 said:
This worked well. Thank you.
Do you plan on implementing something for sqlite, jq and aapt to stick on sbin for the next update?
Also, some of the apps I'm scanning shows:
Exception occured while executing:
java.lang.illegalArgumentException: component class bugsnag.com etc. Etc. Does not exist in bla bla app.
I assume exodus detected that a certain app has trackers and tries to disable it but since I used disablefohkservice script before this, I guess it was already disabled and disabletracking.sh can't find it now?
Click to expand...
Click to collapse
The error you mentioned is normal. That component cannot be toggled.
Also, please try running the script attached in Termux as a normal user (root permission will be required half-way through the script) by running 'bash /path/to/script/InstallReq.sh' . It will check if aapt, jq, curl or sqlite3 are missing and automatically download them, then copy them to /system/xbin. (binaries there should retain across reboots). You are recommended to backup at least your system partition in a recovery. Although tested on my own phone and it shouldn't overwrite anything important in /system, I'm not responsible for any damage caused.
Edit: small change to the script to avoid problems with checking curl
Updated script to version 1.6. Check update log for details.
phantom146 said:
Also, some of the apps I'm scanning shows:
Exception occured while executing:
java.lang.illegalArgumentException: component class bugsnag.com etc. Etc. Does not exist in bla bla app.
Click to expand...
Click to collapse
I just added a 2> /dev/null to the disable line so I don't see it ...
---------- Post added at 10:10 AM ---------- Previous post was at 10:09 AM ----------
steveglowplunk said:
Updated script to version 1.6. Check update log for details.
Click to expand...
Click to collapse
Great, will try it ...
All good :good:, I just added code to delete old app versions from processed db, and to recreate DBFullList variable again after the sqlite changes.
hyborian said:
All good :good:, I just added code to delete old app versions from processed db, and to recreate DBFullList variable again after the sqlite changes.
Click to expand...
Click to collapse
Um... That doesn't sound necessary?
The version field in the database is updated after processing an updated app. There shouldn't be old app versions left behind?
Also, DBFullList doesn't need to be updated after processing an app. If an app's name doesn't exist in DBFullList, then it must be a new app. If it exists in DBFullList and was processed, then it must be an updated app. Not updating the DBFullList variable after processing each apps shouldn't affect the functions.
steveglowplunk said:
Um... That doesn't sound necessary?
The version field in the database is updated after processing an updated app. There shouldn't be old app versions left behind?
Also, DBFullList doesn't need to be updated after processing an app. If an app's name doesn't exist in DBFullList, then it must be a new app. If it exists in DBFullList and was processed, then it must be an updated app. Not updating the DBFullList variable after processing each apps shouldn't affect the functions.
Click to expand...
Click to collapse
Lol, you are right, I was looking at my old processed db which had apps with different versions. I should just have erased it and started fresh.
Anyway, it was nice practice for me. learned something while doing it when I couldn't grep the darn version number of Google Play Store (Version: 20.2.09-all [0] [PR] 311811225 (82020900) in DBFullList. I finally realized it had metacharacters [ ] so changed the grep from -qx to -qFx, and all ok now; otherwise, it will get processed again even if it was already done.
Thanks for the script, really great, beats manually doing it using MyAndroidPro or Blocker.
hyborian said:
Lol, you are right, I was looking at my old processed db which had apps with different versions. I should just have erased it and started fresh.
Anyway, it was nice practice for me. learned something while doing it when I couldn't grep the darn version number of Google Play Store (Version: 20.2.09-all [0] [PR] 311811225 (82020900) in DBFullList. I finally realized it had metacharacters [ ] so changed the grep from -qx to -qFx, and all ok now; otherwise, it will get processed again even if it was already done.
Thanks for the script, really great, beats manually doing it using MyAndroidPro or Blocker.
Click to expand...
Click to collapse
Ah I see. I'll add that -F option in the next update.

General 32-bit ARM Application Checker

With the news that the Pixel 7 is now restricting applications to 64-bit only, I have created a shell script that can be ran on your old phone to check for any armeabi-v7a only applications that will not run on the Pixel 7.
Obviously this script does not make much sense to run on a Pixel 7, but this will help anyone prepare for switching over and give you a heads up if you won't be able to bring over any apps.
As far as I know almost all applications from the Play Store should already be arm64-v8a as Google has been enforcing this requirement on the Play Store for over 3 years now, but any ancient apps that have not been updated for years might still be 32-bit.
There's two methods to run the script, and two different scripts that can be ran.
Both methods will take some time so be patient if you have a lot of user installed applications.
ADB from computer (root not required)​
Make sure you have ADB debugging enabled, platform-tools installed, and your old phone plugged in
Run adb shell
You should now be dropped into a shell on the device
If you aren't then you should try making sure ADB debugging is enabled on the phone, that your phone has authorized your computer, and that the adb server is running on your computer
Paste and run the following command:
for PACKAGE in $(pm list packages -3 | sed "s/^package://"); do if ! pm dump "$PACKAGE" | grep -E "^Dexopt state:" -A4 | grep -q "arm64:"; then echo "$PACKAGE is 32-bit ARM and will not function as of now on the Pixel 7 or later."; fi; done
Any applications that only have 32-bit binaries will be output.
Example:
Code:
raven:/ $ for PACKAGE in $(pm list packages -3 | sed "s/^package://"); do if ! pm dump "$PACKAGE" >
com.dotgears.flappybird is 32-bit ARM and will not function as of now on the Pixel 7 or Android 14.
raven:/ $
If nothing is output then you are fine and have no applications that are only 32-bit.
On Device​The following script will be ran, it will also be attached to this post if you want to download it. This is a bit more verbose.
Code:
#!/bin/sh
echo "Script will check for user installed packages that are 32-bit ARM."
echo "This may take a while."
for PACKAGE in $(pm list packages -3 | sed "s/^package://"); do
if ! pm dump "$PACKAGE" | grep -E "^Dexopt state:" -A4 | grep -q "arm64:"; then
echo "$PACKAGE is 32-bit ARM and will not function as of now on the Pixel 7 or later."
FOUND="1"
fi
done
if [ -z "$FOUND" ]; then
echo "No user installed 32-bit packages found."
fi
echo "Script done."
Either download the script or copy the above code and paste it into an empty file. Make sure you don't mangle it if you are pasting it and to name it arm32appchecker.sh.
Terminal Emulator (root required)​
Use your favorite terminal emulator (I prefer TermOne Plus)
Make sure you have functional root, and that you navigate to where the script is or supply the path to it
Make sure the above script is on your phone somewhere accessible
Navigate to the directory where it is (most likely /sdcard/Download)
Run the following command
su -c sh arm32appchecker.sh
Over ADB (no root)​
Make sure you have ADB debugging enabled, platform-tools installed, and your old phone plugged in
Make sure you get the script on to your device, either via adb push arm32appchecker.sh /sdcard/Download or download it.
Run the following command on your computer
adb shell sh /sdcard/Download/arm32appchecker.sh
Any applications that only have 32-bit binaries will show up. This script will also let you know if there aren't.
Example:
Code:
raven:/sdcard/Download $ su -c sh arm32appchecker.sh
Script will check for user installed packages that are 32-bit ARM.
This may take a while.
No user installed 32-bit packages found.
Script done.
raven:/sdcard/Download $
What Can I Do If I Have 32-bit Apps?​If you have old APKs then I suggest trying to find some new ones. Check on APKMirror for the application to see if there are any newer ones or variants that are built for arm64-v8a. If the application is from a developer directly then try reaching out to them.
Beyond that, there is nothing else that can be done at the moment. It's theorized that the change is only in the Android zygote process, and that the phone still has a full compliment of 32-bit libraries. It is entirely possible for a custom ROM or Magisk module could patch zygote and you can then launch 32-bit apps.
What we do know is that the chipset (Tensor G2 - GS201) is still using ARMv8-A processors that support AArch32, so it's not a hardware limitation.
It is my intention to at some point also create a script that will use aapt to check any downloaded APKs you have. This script will be Linux only, but I will give the commands used so you could cobble together one for Windows. I used to actually have a script to do this several years ago, but have lost it since.
A couple more things to note.
Any applications that are wildly out of date, like built for Android 1-2 might not run at all on Android 13 if they are trying to get permissions that are blocked now. You're not going to get around that if the application isn't functioning because of permission changes.
There is evidence that Google might be forcing this change with phones launching with Android 14. This certainly sets a deadline for new devices going forward. They may also force this change with upgrades to Android 14, but it is currently speculation.
Oh I'm loving this, thank you!
But seems like I'm the only one who voted "yes" haha! (haven't used your script yet but I think I have older apps that are not updated anymore that are probably 32 bits)
Ghisy said:
Oh I'm loving this, thank you!
But seems like I'm the only one who voted "yes" haha! (haven't used your script yet but I think I have older apps that are not updated anymore that are probably 32 bits)
Click to expand...
Click to collapse
That's what I thought originally, I scrolled all the way to the bottom of my previously installed on the Play Store and found the oldest application that hasn't been updated. It was from 2014 so I was certain it was going to be 32-bit, however much to my surprise it was actually 64-bit.
I actually don't have a single application that is 32-bit only, I had to download Flappy Bird from APKMirror just to have a test case for the script.
Thank you, wise one! This confirms the problem I was having installing some of my favorite modded apps yesterday. It will be interesting to see if the apps get updated and/or there is a workaround at some point.
Alright, I have 12 apps that are 32-bit and not compatible with the P7P.
Most of these I can uninstall/replace but it seems like the Instagram mod I'm using is 32 bit-only. Surprisingly, the Amazon App Store is one of them too. Cr*p!
Ghisy said:
Alright, I have 12 apps that are 32-bit and not compatible with the P7P.
Most of these I can uninstall/replace but it seems like the Instagram mod I'm using is 32 bit-only. Surprisingly, the Amazon App Store is one of them too. Cr*p!
Click to expand...
Click to collapse
Same with the Instagram Moded apk. I guess we'll have to wait a bit.
Supermaxness said:
Same with the Instagram Moded apk. I guess we'll have to wait a bit.
Click to expand...
Click to collapse
I've emailed the dev of the one I'm using. I'll PM you if I get a reply (not too sure we're allowed to talk about this here).
For direct, quick and dirty checking an apk (either on your desktop or device) you can just do an unzip and a grep.
The details are dependent on how unzip and grep take flags and the listing format.
Code:
C:\>7zip l fennec-68.11.0.multi.android-arm.apk|grep lib
247300 169274 lib\armeabi-v7a\libfreebl3.so
26376 12943 lib\armeabi-v7a\liblgpllibs.so
132744 60551 lib\armeabi-v7a\libmozavcodec.so
144924 70955 lib\armeabi-v7a\libmozavutil.so
1213340 485264 lib\armeabi-v7a\libmozglue.so
1164536 764454 lib\armeabi-v7a\libnss3.so
352812 176726 lib\armeabi-v7a\libnssckbi.so
14196 7407 lib\armeabi-v7a\libplugin-container.so
141344 85415 lib\armeabi-v7a\libsoftokn3.so
58525688 31002207 lib\armeabi-v7a\libxul.so
Thanks for the script! Looks like I only have about 3 apps that won't work on my P7P when it arrives.
I ran it over wireless ADB.
The script isn't working on my phone, it's listing a bunch of apps that I know have 64-bit (or might be pure java/kotlin) such as Swift Backup.
When I break it down, the pm dump has output, but piping that to the grep -E does not
Is this how the script should work? If yes, does it mean that I have none 32-bit apps on my phone? Thank you
davidgro said:
The script isn't working on my phone, it's listing a bunch of apps that I know have 64-bit (or might be pure java/kotlin) such as Swift Backup.
When I break it down, the pm dump has output, but piping that to the grep -E does not
Click to expand...
Click to collapse
I have Swift Backup on my phone and it doesn't show up. Which method did you use? What phone do you have? What version of Android are you running?
flashbac76 said:
Is this how the script should work? If yes, does it mean that I have none 32-bit apps on my phone? Thank you
Click to expand...
Click to collapse
You're not doing it right, you're just pasting the script into the terminal emulator or letting it try to read and paste the file for you, download the script from the attachment in the post and follow the directions for a terminal emulator with root. If you still can't get it to function or don't have root then try the ADB method that is listed right after the terminal emulator method.
Ghisy said:
Alright, I have 12 apps that are 32-bit and not compatible with the P7P.
Most of these I can uninstall/replace but it seems like the Instagram mod I'm using is 32 bit-only. Surprisingly, the Amazon App Store is one of them too. Cr*p!
Click to expand...
Click to collapse
I just checked and it's absolutely hilarious that the Amazon App Store can't be installed, nearly 2023 and they still don't know how to make universal APKs.
Thank you very much! The script found 2 apps on my phone. One I should be able to easily replace with another, and the other is a game that I won't miss.
I have a game on my phone that hasn't been on the play store or updated for many many years, I'm surprised that didn't show up.
davidgro said:
The script isn't working on my phone, it's listing a bunch of apps that I know have 64-bit (or might be pure java/kotlin) such as Swift Backup.
When I break it down, the pm dump has output, but piping that to the grep -E does not
Click to expand...
Click to collapse
So I checked and it appears you're using a V20? It's possible that your device has old enough utilities that they don't support grep with extended regular expressions. The script might work without that one grep, but with how much junk pm dump includes about the system state I wanted to be able to anchor it to a point where I know the data I am looking for will be so I don't end up with false positives or negatives.
You can try this updated script to see if it works. I tested it on my phone and it still works, so if it works for you I guess it can be pushed to everyone else.
One App com.amazon.venezia = Amaton Appstor, wtf Amazon 32bit in 2022?
Ghisy said:
I've emailed the dev of the one I'm using. I'll PM you if I get a reply (not too sure we're allowed to talk about this here).
Click to expand...
Click to collapse
If you get any answer, please send me a PM too if you can. I was using Instander. I tried Aeroinsta, InstaPro and InstaXtreme, but all of them are 32 bits only...
narcisrm said:
If you get any answer, please send me a PM too if you can. I was using Instander. I tried Aeroinsta, InstaPro and InstaXtreme, but all of them are 32 bits only...
Click to expand...
Click to collapse
Yeah, they all seem to be 32 bits only. I believe the official Instagram app is 64 bits so why?
No reply yet but I'll PM everyone who is interested. Don't wanna flood this thread too much.
Namelesswonder said:
I just checked and it's absolutely hilarious that the Amazon App Store can't be installed, nearly 2023 and they still don't know how to make universal APKs.
Click to expand...
Click to collapse
You know what? I emailed the Amazon App Store support through the app for 64-bit support. No idea if I'll ever get a reply (it's mostly for sh*ts and giggles haha) but eh, worth a try.

Categories

Resources