**** This module is now obsolete as privapp permissions are now granted automatically when systemizing apps with Terminal App Systemizer. Please use that from now on. ****
In Android 8.0 Oreo, permissions are not automatically granted to system privileged apps. This is automatically done by apps where the root method allows system modifications, but with systemless root that has to be done in a different way.
Therefore, apps systemized into /system/priv-app using App Systemizer or Terminal App Systemizer will not be granted some permissions. All privileged apps must be whitelisted in system configuration files in the /etc/permissions directory.
Entries can either be appended to /etc/permissions/privapp-permissions-platform.xml or separate files can be created for each package; i.e., /etc/permissions/privapp-permisisons-com.package.name.xml. The latter is easier and more modular (pun intended :laugh: ).
This module is more of a template. I've included XML files for BetterBatteryStats, Cerberus, F-Droid Privileged Extension, Greenify and Wakelock Detector Free. Before flashing it, you will want to add or remove XML files according to your needs.
Example XML file:
/etc/permissions/privapp-permisisons-com.package.name.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="com.package.name">
<permission name="android.permission.WRITE_A_SETTING" />
<permission name="android.permission.WRITE_ANOTHER_SETTING" />
</privapp-permissions>
</permissions>
In order to determine what permissions are missing from your systemized app, you can compare the requested permissions and install permissions by running:
Code:
adb shell dumpsys package com.package.name
However, not every permission missing from the install permissions section needs to be granted in this manner. If you're not sure, contact the app developer for clarification.
A better version of this module would generate the permissions configuration XML file without having to get your hands dirty. However, that would require including aapt and I haven't figured out how to do it yet. Perhaps @stangri or @veez21 could help with that.
Download:
Module removed, please use Terminal App Systemizer
RESERVED
yochananmarqos said:
In
In order to determine what permissions are missing from your systemized app, you can compare the requested permissions and installed permissions by running:
Code:
adb shell dumpsys package com.package.name
Click to expand...
Click to collapse
Hi, I'm trying to get FakeGPS to work on Oreo. I think I've done everything correctly, but the app freezes when I try to engage the location.
Below is the output from ADB. Does this looks correct, or do I need further action? Thanks!
Activity Resolver Table:
Full MIME Types:
text/plain:
361e3e2 com.incorporateapps.fakegps/.Maps filter 67f598b
Action: "android.intent.action.SEND"
Category: "android.intent.category.DEFAULT"
Type: "text/plain"
Base MIME Types:
text:
361e3e2 com.incorporateapps.fakegps/.Maps filter 67f598b
Action: "android.intent.action.SEND"
Category: "android.intent.category.DEFAULT"
Type: "text/plain"
Schemes:
geo:
361e3e2 com.incorporateapps.fakegps/.Maps filter 35b935a
Action: "android.intent.action.VIEW"
Category: "android.intent.category.DEFAULT"
Category: "android.intent.category.BROWSABLE"
Scheme: "geo"
Non-Data Actions:
com.htc.laputa.map.action.REVERSE_ADDR_ON_MAP:
361e3e2 com.incorporateapps.fakegps/.Maps filter 7e66705
Action: "com.htc.laputa.map.action.REVERSE_ADDR_ON_MAP"
Category: "android.intent.category.DEFAULT"
android.intent.action.MAIN:
361e3e2 com.incorporateapps.fakegps/.Maps filter 38ce27c
Action: "android.intent.action.MAIN"
Category: "android.intent.category.LAUNCHER"
MIME Typed Actions:
android.intent.action.SEND:
361e3e2 com.incorporateapps.fakegps/.Maps filter 67f598b
Action: "android.intent.action.SEND"
Category: "android.intent.category.DEFAULT"
Type: "text/plain"
Receiver Resolver Table:
Non-Data Actions:
android.intent.action.BOOT_COMPLETED:
6e91373 com.incorporateapps.fakegps/.BootServiceReceiver filter abfc04e
Action: "android.intent.action.BOOT_COMPLETED"
mPriority=999, mHasPartialTypes=false
com.incorporateapps.fakegps.ACTION_STOP:
31c8230 com.incorporateapps.fakegps/.StopButtonListener filter a90d56f
Action: "com.incorporateapps.fakegps.ACTION_STOP"
Service Resolver Table:
Non-Data Actions:
com.incorporateapps.fakegps.STOP:
3ee3ea9 com.incorporateapps.fakegps/.Tasker filter c041f49
Action: "com.incorporateapps.fakegps.STOP"
com.incorporateapps.fakegps.ENGAGE:
3ee3ea9 com.incorporateapps.fakegps/.Tasker filter c910150
Action: "com.incorporateapps.fakegps.ENGAGE"
Key Set Manager:
[com.incorporateapps.fakegps]
Signing KeySets: 67
Packages:
Package [com.incorporateapps.fakegps] (33e5c2e):
userId=10091
pkg=Package{b3773cf com.incorporateapps.fakegps}
codePath=/data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==
resourcePath=/data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==
legacyNativeLibraryDir=/data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==/lib
primaryCpuAbi=null
secondaryCpuAbi=null
versionCode=67 minSdk=8 targetSdk=20
versionName=4.9.6
splits=[base]
apkSigningVersion=1
applicationInfo=ApplicationInfo{cff915c com.incorporateapps.fakegps}
flags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA UPDATED_SYSTEM_APP ALLOW_BACKUP ]
privateFlags=[ PRIVILEGED ]
dataDir=/data/user/0/com.incorporateapps.fakegps
supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
usesLibraries:
com.google.android.maps
usesLibraryFiles:
/system/framework/com.google.android.maps.jar
timeStamp=2017-09-26 08:41:14
firstInstallTime=2017-09-26 08:41:15
lastUpdateTime=1970-08-29 17:38:13
installerPackageName=com.android.vending
signatures=PackageSignatures{431c65 [15a9c792]}
installPermissionsFixed=true installStatus=1
pkgFlags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA UPDATED_SYSTEM_APP ALLOW_BACKUP ]
requested permissions:
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.INTERNET
android.permission.ACCESS_MOCK_LOCATION
android.permission.WRITE_SETTINGS
com.android.vending.CHECK_LICENSE
android.permission.INSTALL_LOCATION_PROVIDER
android.permission.WRITE_SECURE_SETTINGS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.UPDATE_APP_OPS_STATS
install permissions:
android.permission.WRITE_SETTINGS: granted=true
android.permission.ACCESS_FINE_LOCATION: granted=true
android.permission.INSTALL_LOCATION_PROVIDER: granted=true
android.permission.RECEIVE_BOOT_COMPLETED: granted=true
android.permission.INTERNET: granted=true
com.android.vending.CHECK_LICENSE: granted=true
android.permission.WRITE_SECURE_SETTINGS: granted=true
android.permission.ACCESS_COARSE_LOCATION: granted=true
android.permission.UPDATE_APP_OPS_STATS: granted=true
User 0: ceDataInode=1736796 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
gids=[3003]
runtime permissions:
Hidden system packages:
Package [com.incorporateapps.fakegps] (a580d3a):
userId=10091
pkg=Package{617deb com.incorporateapps.fakegps}
codePath=/system/priv-app/FakeGPS
resourcePath=/system/priv-app/FakeGPS
legacyNativeLibraryDir=/system/priv-app/FakeGPS/lib
primaryCpuAbi=null
secondaryCpuAbi=null
versionCode=67 minSdk=8 targetSdk=20
versionName=4.9.6
splits=[base]
apkSigningVersion=1
applicationInfo=ApplicationInfo{ca26748 com.incorporateapps.fakegps}
flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
dataDir=null
supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
usesLibraries:
com.google.android.maps
timeStamp=1970-08-29 17:38:13
firstInstallTime=2017-09-26 08:41:15
lastUpdateTime=1970-08-29 17:38:13
signatures=PackageSignatures{64e19e1 []}
installPermissionsFixed=false installStatus=1
pkgFlags=[ SYSTEM ]
requested permissions:
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.INTERNET
android.permission.ACCESS_MOCK_LOCATION
android.permission.WRITE_SETTINGS
com.android.vending.CHECK_LICENSE
android.permission.INSTALL_LOCATION_PROVIDER
android.permission.WRITE_SECURE_SETTINGS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.UPDATE_APP_OPS_STATS
install permissions:
android.permission.WRITE_SETTINGS: granted=true
android.permission.ACCESS_FINE_LOCATION: granted=true
android.permission.RECEIVE_BOOT_COMPLETED: granted=true
android.permission.INTERNET: granted=true
com.android.vending.CHECK_LICENSE: granted=true
android.permission.ACCESS_COARSE_LOCATION: granted=true
User 0: ceDataInode=0 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
gids=[3003]
runtime permissions:
Package Changes:
Sequence number=6
User 0:
seq=0, package=com.google.android.talk
seq=4, package=com.google.android.gms
seq=5, package=com.android.terminal
Dexopt state:
[com.incorporateapps.fakegps]
Instruction Set: arm64
path: /data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==/base.apk
status: /data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==/oat/arm64/base.odex[status=kOatUpToDate, co
mpilation_filter=quicken]
Compiler stats:
[com.incorporateapps.fakegps]
base.apk - 728
com.incorporateapps.fakegps.apk - 533
resarfekim said:
Hi, I'm trying to get FakeGPS to work on Oreo. I think I've done everything correctly, but the app freezes when I try to engage the location.
Below is the output from ADB. Does this looks correct, or do I need further action? Thanks!
pkgFlags=[ SYSTEM ]
requested permissions:
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.INTERNET
android.permission.ACCESS_MOCK_LOCATION
android.permission.WRITE_SETTINGS
com.android.vending.CHECK_LICENSE
android.permission.INSTALL_LOCATION_PROVIDER
android.permission.WRITE_SECURE_SETTINGS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.UPDATE_APP_OPS_STATS
install permissions:
android.permission.WRITE_SETTINGS: granted=true
android.permission.ACCESS_FINE_LOCATION: granted=true
android.permission.RECEIVE_BOOT_COMPLETED: granted=true
android.permission.INTERNET: granted=true
com.android.vending.CHECK_LICENSE: granted=true
android.permission.ACCESS_COARSE_LOCATION: granted=true
Click to expand...
Click to collapse
Notice the bit from the dump I left in the quote. These permissions are not granted:
Code:
android.permission.ACCESS_MOCK_LOCATION
android.permission.INSTALL_LOCATION_PROVIDER
android.permission.WRITE_SECURE_SETTINGS
android.permission.UPDATE_APP_OPS_STATS
What have you done so far?
Maybe make a companion app that helps with this? Not sure how one would do that though.
Would you believe I didn't notice BetterBatteryStats was missing permissions? :silly: I thought it was no longer necessary as the How-to & FAQ in the main BBS thread states it does not require the system app anymore.
However, it turns out (at least on Oreo) it is still necessary. I noticed these required permissions are not being granted:
android.permission.DUMP
android.permission.READ_LOGS
android.permission.DEVICE_POWER
You can verify the permissions are granted (or not) by going to BBS Settings > Advanced > Install as system app.
I updated the module to support the Play Store version and the XDA Edition. Download in the OP.
@chamonix The above permissions will also need to be granted via adb for those running BBS on a non-rooted device.
Thanks to @kd- for figuring this out :good:
yochananmarqos said:
Would you believe I didn't notice BetterBatteryStats was missing permissions? :silly: I thought it was no longer necessary as the How-to & FAQ in the main BBS thread states it does not require the system app anymore.
However, it turns out (at least on Oreo) it is still necessary. I noticed these required permissions are not being granted:
android.permission.DUMP
android.permission.READ_LOGS
android.permission.DEVICE_POWER
You can verify the permissions are granted (or not) by going to BBS Settings > Advanced > Install as system app.
I updated the module to support the Play Store version and the XDA Edition. Download in the OP.
@chamonix The above permissions will also need to be granted via adb for those running BBS on a non-rooted device.
Thanks to @kd- for figuring this out :good:
Click to expand...
Click to collapse
what version are you using and are there features not working when these perms are missing?
chamonix said:
what version are you using and are there features not working when these perms are missing?
Click to expand...
Click to collapse
I'm using the 2.2.2 XDA Edition. I see a lot more stats with those permissions than without. They are automatically granted when BBS is a system app on Nougat and below, however they are not on Oreo. See the link in the OP to the documentation. Also, @kd- was not able to see Partial Wakelocks until he enabled those permissions with my module. I don't know if he tried forcing the API method or not.
Seeing how this isn't the best place to troubleshoot BBS, shall we continue in the BBS thread? Mention me there if you want to do that.
How do you install this module? I downloaded the zip. Unzipped, edited the xml files as needed, rezipped and tried to install through Magisk app as a module. It said it's not a valid Magisk module.
I'm a little new to Magisk, so I'm sure this is a me issue... any guidance you can provide is appreciated.
robbieas said:
How do you install this module? I downloaded the zip. Unzipped, edited the xml files as needed, rezipped and tried to install through Magisk app as a module. It said it's not a valid Magisk module.
I'm a little new to Magisk, so I'm sure this is a me issue... any guidance you can provide is appreciated.
Click to expand...
Click to collapse
It installed fine in Magisk Manager for me. Try flashing it in recovery.
Sent from my Nexus 5X using XDA Labs
yochananmarqos said:
It installed fine in Magisk Manager for me. Try flashing it in recovery.
Sent from my Nexus 5X using XDA Labs
Click to expand...
Click to collapse
As suspected, user error.... When I rezipped things I zipped the folder not the files, so everything was buried a level too deep.
This worked like a charm and got Tasker Tether working on stock rooted Oreo on a 6p. Thanks!
robbieas said:
As suspected, user error.... When I rezipped things I zipped the folder not the files, so everything was buried a level too deep.
This worked like a charm and got Tasker Tether working on stock rooted Oreo on a 6p. Thanks!
Click to expand...
Click to collapse
I'm glad you found it useful. :good:
Sent from my Nexus 5X using XDA Labs
robbieas said:
As suspected, user error.... When I rezipped things I zipped the folder not the files, so everything was buried a level too deep.
This worked like a charm and got Tasker Tether working on stock rooted Oreo on a 6p. Thanks!
Click to expand...
Click to collapse
Do you mind sharing how you got tether working with tasker and Oreo? I'm struggling to get it working on my Pixel 2.
I've tried just tasker alone, securetask, and nougat+ taker tether control and I just can't get it to work. (Manually toggling via the navigation tile works fine, just not programmatically.)
Sent from my Pixel 2 using Tapatalk
I fought with this forever, especially after 7.1 it became a real hassle. I feel your pain. But I think I've gotten it figured out at this point and happy to help. My use case is for my in-dash Nexus 7 tablet. I leave BT on, and anytime I get in my car it connects to my car stereo, and Tasker turns on my hotspot when it sees I connect to that BT device.
Start with the Tasker plugin "Nougat+ Tasker Tethering Control". This will show up in Tasker under plugins. First time you add it to a task, when you go to configuration you'll see a request to install it to system - do that and reboot.
Now go back to Tasker and and test run the task. If you get an error about "android.permission.TETHER_PRIVILEGED", then flash the attached module in Magisk and reboot. This should give Tasker Tether the permissions it needs to turn hotspot on/off. It worked perfectly for me.
Let me know if you have any issues and I'll help if at all possible. Also this assumes that you can turn on hotspot manually and it works.... this is not a way to get hotspot working if your carrier is blocking it, this just allows Tasker to automate the process.
use aapt to dump app permissions
Code:
aapt d permissions myapp.apk
Innfinite4evr said:
use aapt to dump app permissions
Code:
aapt d permissions myapp.apk
Click to expand...
Click to collapse
Right, but the whole point here is finding out which permissions are not being granted when an app is systemized via Magisk.
Accidental duplicate post.
Cool, I'll try to use it for Mi Fit app that seems to be kicked by Oreo. But right now, ADB seems broken on my device.
If someone kind enought could help me for the list of autorisation to give, I'd be very gratefull !
Kéno40 said:
Cool, I'll try to use it for Mi Fit app that seems to be kicked by Oreo. But right now, ADB seems broken on my device.
If someone kind enought could help me for the list of autorisation to give, I'd be very gratefull !
Click to expand...
Click to collapse
How would Mi Fit benefit from being a system app? I used it with my Mi Band 2 (before I lost it) on Oreo with no issues.
Sent from my LG G5 using XDA Labs
yochananmarqos said:
How would Mi Fit benefit from being a system app? I used it with my Mi Band 2 (before I lost it) on Oreo with no issues.
Sent from my LG G5 using XDA Labs
Click to expand...
Click to collapse
I suspect that doze "hibernate" MiFit while my watch is to far from my Phone. I've tried some things but still the same. I thought that systemize it would help.
If your experience is verified, it lets me 2 options :
- It's software, but rom related
- it's my watch...
Related
This mod has since been discontinued in favor of Adaway. Read on for information on how to use Unified Hosts with Adaway
What are Unified Host Files?
Unified host files combine many reputable sources into a single hosts file (with duplicates removed). Some examples include adaway, mvps, yoyo.org, and malware domain list (see Steven Black's page here for a complete list).
Adaway Installation for Magisk:
Adaway version 4.x now works properly with magisk systemless hosts. To enable it, just install the latest version from here (the main xda thread for it hasn't been updated for it yet). Then go to Preferences -> Enable systemless mode. This automatically enables the Systemless hosts option in magisk manager so no need to bother with that. Then use the app as normal.
How to Add Unified Hosts to Adaway:
In the adaway app, go to Preferences -> Redirection IP (NOT Allow Redirects). Change the value to 0.0.0.0. Read the readme on Steven Black's GitHub linked above for why.
Then go to Hosts Sources. Then add the url of the unified hosts you want (ONLY CHOOSE 1):
Master: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
Master+FakeNews: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews/hosts
Master+Gambling: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling/hosts
Master+Porn: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/porn/hosts
Master+Social: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/social/hosts
Master+FakeNews+Gambling: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts
Master+FakeNews+Porn: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-porn/hosts
Master+FakeNews+Social: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-social/hosts
Master+Gambling+Porn: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling-porn/hosts
Master+Gambling+Social https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling-social/hosts
Master+Porn+Social: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/porn-social/hosts
Master+Fakenews+Gambling+Porn (This is the one I use): https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts
Master+Fakenews+Gambling+Social: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-social/hosts
Master+Fakenews+Porn+Social: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-porn-social/hosts
Master+Gambling+Porn+Social: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling-porn-social/hosts
Master+Fakenews+Gambling+Porn+social: https://raw.githubusercontent.com/S...lternates/fakenews-gambling-porn-social/hosts
You can then uncheck the host sources already added by default to adaway since they're included in unified hosts sources already
**Note that the 'Social' filter does exactly what you think: blocks social networks. So if you use any kind of social networking, DO NOT CHOOSE THIS ANY SOURCE WITH THIS IN IT**
Using a APN that uses a proxy server or a subsidiary provider and unable to get adblocking working? See here for a fix
Original Mod Information:
Description
Blocks ads by using Steven Black's Unified Hosts
Comes with a small utility based off of LarappsOfDongle's RP modular host module that allows you to choose which kind of host file you want (adware/malware, fakenews, gambling, porn, social, or any combination)
Installation
Go to Settings in Magisk Manager and enable 'Systemless Hosts'
Flash module
Open terminal and type:
Code:
su
hosts
Then follow the prompts to install the host file of your choice.
OR
- Open terminal and type:
Code:
su -c hosts arg1 arg2 arg3
- The script will apply your arguments all at once and close. Useful for automation purposes
- For example: `su -c hosts m wr b`
- Script will apply the master filter, then your regex whitelist, then your blacklist
Updating Hosts:
Just run the hosts file again in terminal and it'll overwrite the old one
Note: The script will now notify you to say if you need to update or not at the top of it
Disabling Host Mod:
Just toggle the enable systemless hosts option in magisk manager
Whitelist Instructions:
Create an empty file on sdcard card called "whitelist"
Either add exact lines you want remove to it -> Run hosts script and choose whitelist option
For example:
Code:
0.0.0.0 facebook.com
Will unblock facebook.com
Or add regex for lines you want removed -> Run hosts script and choose whitelist regex option
For example:
Code:
.*facebook.*
Will unblock all domains with "facebook" in them
Blacklist Instructions:
Create an empty file on sdcard card called "blacklist"
Add exact lines you want to remove it (do not include the 0.0.0.0 -> so for example: "facebook.com")
Run hosts script and choose blacklist option
For example:
Code:
google-analytics.com
Will block the google-analytics.com domain (it will add the entry "0.0.0.0 google-analytics.com" to the hosts file - note the lack of the 0's here. The script takes care of it automatically for the blacklist feature)
To Remove Whitelist:
Just run hosts script and reinstall host file of choice
Latest Magisk Version Compatibility:
15.x
Source
Can't Boot?
Try rebooting into the bootloader, then boot into system. Thanks @rignfool for the tip
Bonus!
I made a quick automate flow to update the hosts file. Just import it, add a shortcut to your home screen, and you can update it in one click
Just change the 2nd block to whatever options you want
@Didgeridoohan made a tasker profile here for any who use tasker: https://forum.xda-developers.com/showpost.php?p=73369050&postcount=451
Download
How does this differ from AdAway?
serubin323 said:
How does this differ from AdAway?
Click to expand...
Click to collapse
The unified hosts file combine many sources including AdAway, mvps, malware domains, and more. Check out steve black's page in the op for a full list.
Also, for some reason, adaway wouldn't detect the systemless hosts file for me so i had to set a custom path and symlink it
Updated module for latest magisk manager update (required changes to the readme). Doesn't change the functionality of the module at all so if you're in 1.1, there's no need to upgrade since these readme changes will only be reflected in magisk manager once this module is approved into the repo.
Damnit... Wrong thread...
OK...
Syntax...
su -c hosts ______
Please fill in the blank...
rignfool said:
Damnit... Wrong thread...
OK...
Syntax...
su -c hosts ______
Please fill in the blank...
Click to expand...
Click to collapse
Code:
su
Give root permissions
Code:
hosts
Program will prompt for input. For example, if you want malware/adware (master) + fakenews + gambling, you're input would be:
Code:
fg
The reason for not including the master (adware/malware) in the arguments is that it's already included by default in each host file. So the fakenews host file is actually master + fakenews. It's how steven set it up so I have no control over it (and who wouldn't want the malware block anyways)
Found a typo in the directions for the host file. Once again doesn't effect functionality at all but does eliminate confusion so uploaded fixed version (sorry)
Zackptg5 said:
Give root permissions
Program will prompt for input. For example, if you want malware/adware (master) + fakenews + gambling, you're input would be:
Click to expand...
Click to collapse
I'm looking to execute as a one line shell command with tasker...
So I'm using 'su -c' cuz SU detection in tasker with magisksu is broken...
Then hosts... But I want to run with an argument so I don't need to interact with the script... Just have it update the hosts file...
rignfool said:
I'm looking to execute as a one line shell command with tasker...
So I'm using 'su -c' cuz SU detection in tasker with magisksu is broken...
Then hosts... But I want to run with an argument so I don't need to interact with the script... Just have it update the hosts file...
Click to expand...
Click to collapse
I've never used tasker (use automate instead). Perhaps
su -c; hosts; sleep 1; fgps; sleep 2; q
Not sure if the sleep command works for tasker (linux thing) but if there's a way to have it wait a half a second or so before inputting the next command, and then waiting 2 seconds or so to quit after the hosts is applied (not sure on the time, just guessing).
Edit, just saw you didn't want to deal with the script. The 'hosts' command is the script. If you look my source for the hosts script, it lists each url for the file and what it does. So all of the terminal code for fgps would be:
Code:
su -c
cd /magisk/.core
wget -O hosts --no-check-certificate https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts
This will replace the systemless hosts file with the one you want. Note you will at least need the wget portion of the module (system/bin) since it's not included in most roms
v1.3 update: Noticed that the disable option was broken so I removed it since it's not needed (see OP for disable instructions)
Using ze551ml, after rebooting, module disappeared. I can't find hosts command anywhere.
danzel said:
Using ze551ml, after rebooting, module disappeared. I can't find hosts command anywhere.
Click to expand...
Click to collapse
Does magisk manager say root is enabled? There's been an ongoing issue where root will disappear and so all modules will disappear as well. This isn't a module issue but a magisk issue
Automating hosts update?
Hi Zack!
Love your module, thank you!
Is there a way I can update with FG running a shell command from Tasker?
When I try
Code:
echo fg|hosts
it does download the fg file, but then it infinitely loops and never quits, until I send a CTRL-C to the terminal.
Could you please make it so hosts accepts arguments from the command line, instead of a menu?
Thank you!
Yom said:
Hi Zack!
Love your module, thank you!
Is there a way I can update with FG running a shell command from Tasker?
When I try
Code:
echo fg|hosts
it does download the fg file, but then it infinitely loops and never quits, until I send a CTRL-C to the terminal.
Could you please make it so hosts accepts arguments from the command line, instead of a menu?
Thank you!
Click to expand...
Click to collapse
The menu is part of the command line. I don't have tasker however, maybe this post will help: https://forum.xda-developers.com/showpost.php?p=71117156&postcount=9
You can circumvent running the script completely and just wget your host of choice. In that post, I have a link to the source for the hosts file with all of the urls. For fg for example, it would be: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts
Yom said:
Hi Zack!
Love your module, thank you!
Is there a way I can update with FG running a shell command from Tasker?
When I try
Code:
echo fg|hosts
it does download the fg file, but then it infinitely loops and never quits, until I send a CTRL-C to the terminal.
Could you please make it so hosts accepts arguments from the command line, instead of a menu?
Thank you!
Click to expand...
Click to collapse
As @Zackptg5 says, to automate with Tasker it's easier to just circumvent the script altogether...
I have a Tasker profile set up to fetch the hosts file directly from Steven Blacks GitHub and save it to /magisk/.core/hosts. I couldn't get wget to work properly with Taskers Run Shell, so I used the HTTP Get instead to fetch it to /sdcard and then Run Shell to move it to /magisk/.core/hosts (and to remove it from /sdcard afterwards).
Is there a possibility of whitelists?
ChronoReverse said:
Is there a possibility of whitelists?
Click to expand...
Click to collapse
In theory, you shouldn't need a white list with these hosts files. I chose them because they are gone over with a fine tooth comb so you shouldn't have any issues. However, when I get on spring break, I could attempt to add a whitelist option to the script. I was thinking the easiest way to do this would be to read a text file (would be a blank one in the module folder by default but is editable the uses to add whatever) and remove any matches from the host file. Have any better ideas to implement this? I have no experience with GUI development and that would add unnecessary overhead anyways
Does this module work currently? I disabled adaway and enabled this but it's not blocking ads that adaway blocks.
Testcase: root check by Jrummy
Adaway blocks the in app ads. This module does not
EDIT: apparently I can't read... Lol. Followed the Op and now it works great!
Neat module. It's working great! Thanks for sharing it!
Yom said:
Hi Zack!
Love your module, thank you!
Is there a way I can update with FG running a shell command from Tasker?
When I try
Code:
echo fg|hosts
it does download the fg file, but then it infinitely loops and never quits, until I send a CTRL-C to the terminal.
Could you please make it so hosts accepts arguments from the command line, instead of a menu?
Thank you!
Click to expand...
Click to collapse
I have a profile set up to do this every 12 hours. If you still need it, I updated it to use your preferred settings and exported it. All you need to do is import it in Tasker (long-press Profiles header) and turn it on.
Hello, everyone.
Few days ago, I found Hanabank app (com.hanabank.ebk.channel.android.hananbank) detects Magisk hide. I ran strace against Hanabank app, and I got some suspicious openat(2) returns -EACCES and even some files are not filtered by Magisk Hide (returns file descriptor successfully)
Here are openat(2) calls which don't look good.
Code:
[pid 27855] openat(AT_FDCWD, "/sbin_orig/magisk", O_RDONLY|O_LARGEFILE) = 91
[pid 27855] openat(AT_FDCWD, "/dev/magisk/mirror/system", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 27855] openat(AT_FDCWD, "/magisk", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 27855] fstatat64(AT_FDCWD, "99-magisk.sh", {st_mode=S_IFREG|0755, st_size=2011, ...}, 0) = 0
Full strace log of Hanabank app:
Code:
https://pastebin.com/BUiViAbK
I think they should return -ENOENT to pass that magisk detection routine.
I'm using Magisk v14.0
BTW, why Magisk Github issue tracker is disabled?
Having the same issue but with another app.
https://forum.xda-developers.com/showpost.php?p=73968022&postcount=19348
How did you run strace? I used strace -f -p PID-o /sdcard/strace.txt but no reference to Magisk is shown.
olivercervera said:
Having the same issue but with another app.
https://forum.xda-developers.com/showpost.php?p=73968022&postcount=19348
How did you run strace? I used strace -f -p PID-o /sdcard/strace.txt but no reference to Magisk is shown.
Click to expand...
Click to collapse
First, sorry for late reply. I was on vacation.
I used this script to attach strace to fresh app process.
Code:
while true; do
while ! ps | grep -q -i $1; do :; done;
ps | grep -i $1 | while read a b c; do
strace -e open -f -e trace=file,ptrace -p $b 2>&1;
done;
done
For example, if you saved this script as /sdcard/strace.sh, The procedure I take to attach strace to the app is;
1. use killall command to kill all app process. Android pre-forks app, so we need to kill that first.
2. run script using sh /sdcard/strace.sh <app_process_name>. This will attach strace to the app and redirects strace's stderr output to stdout.
2-1. Do whatever you want (use tee or just redirect it to file, etc..) with stdout stream.
3. Analyze collected result.
That's all.
perillamint said:
First, sorry for late reply. I was on vacation.
I used this script to attach strace to fresh app process.
Click to expand...
Click to collapse
Hi
Just now I realised that I responded in the other thread. However your script never worked
I ran the script in a shell with root permission using
Code:
sh /sdcard/strace.sh com.barclays.android.barclaysmobilebanking
Unfortunately this is what I get when I try to run the script
Code:
/sdcard/strace.sh[5]: syntax error: 'done' unexpected
What have I done wrong?
EDIT: I've done this test on another device, a Nexus 5X stock 7.1.2 + Magisk v14. If I run strace it is not found, I have installed busybox but nothing! WAT??? I'll test with the other device later which has strace (Nexus 5).
EDIT2: Nope, I get the same error on the device which has strace.
olivercervera said:
Hi
Just now I realised that I responded in the other thread. However your script never worked
I ran the script in a shell with root permission using
Code:
sh /sdcard/strace.sh com.barclays.android.barclaysmobilebanking
Unfortunately this is what I get when I try to run the script
Code:
/sdcard/strace.sh[5]: syntax error: 'done' unexpected
What have I done wrong?
EDIT: I've done this test on another device, a Nexus 5X stock 7.1.2 + Magisk v14. If I run strace it is not found, I have installed busybox but nothing! WAT??? I'll test with the other device later which has strace (Nexus 5).
EDIT2: Nope, I get the same error on the device which has strace.
Click to expand...
Click to collapse
Hmm, I used sh which included in LineageOS.... I think Android's default sh couldn't handle that script's syntax properly. Default sh is quite crippled compared to GNU/Linux's one (bash, zsh, etc..)
Could you try running this script using bash instead of sh? If you don't have bash on your Android system, this Magisk module could inject bash binary into your system. https://forum.xda-developers.com/apps/magisk/module-magisk-bash-shell-t3609988
perillamint said:
Hmm, I used sh which included in LineageOS.... I think Android's default sh couldn't handle that script's syntax properly. Default sh is quite crippled compared to GNU/Linux's one (bash, zsh, etc..)
Could you try running this script using bash instead of sh? If you don't have bash on your Android system, this Magisk module could inject bash binary into your system. https://forum.xda-developers.com/apps/magisk/module-magisk-bash-shell-t3609988
Click to expand...
Click to collapse
Thanks for your suggestion. In the end I installed LOS on my test device and ran the script.
The funny thing is that I can't find a single reference to Magisk or Root...
The output is attached.
olivercervera said:
Thanks for your suggestion. In the end I installed LOS on my test device and ran the script.
The funny thing is that I can't find a single reference to Magisk or Root...
The output is attached.
Click to expand...
Click to collapse
Indeed. However the app dies shortly after reading the two property files:
/dev/__properties__/ubject_r:default_prop:s0
/dev/__properties__/ubject_r:logd_prop:s0
I would try to get the output of getprop with and without Magisk installed and see if there are any properties being leaked that could give a hint that Magisk is installed.
Fif_ said:
Indeed. However the app dies shortly after reading the two property files:
/dev/__properties__/ubject_r:default_prop:s0
/dev/__properties__/ubject_r:logd_prop:s0
I would try to get the output of getprop with and without Magisk installed and see if there are any properties being leaked that could give a hint that Magisk is installed.
Click to expand...
Click to collapse
You are the man! You definitely spotted the method being used by this app. Thanks.
I had to leave LOS ROM because even without Magisk it would not run, so I installed another ROM. I verified the app runs, got props, installed Magisk and got new props.
There are all changes:
1. [ro.build.selinux]: [1] is changed to [ro.build.selinux]: [0] when Magisk is installed
2. [ro.runtime.firstboot] shows different values but I believe it's fine
3. The following are entirely missing when Magisk is installed
[selinux.reload_policy]: [1]
[service.adb.tcp.port]: [-1]
[sys.retaildemo.enabled]: [0]
[init.svc.clear-bcb]: [stopped]
I have the feeling that [ro.build.selinux]: [1] and [selinux.reload_policy]: [1] are key elements and Magisk is not hiding them properly. I would suppose these elements show that SELinux is not enforcing anymore. I tried changing these values, but at reboot they don't change.
I know obviously Magisk does not enforce SELinux, but hides that got set to Permissive. System thinks that is enforcing, and using command getenforce i get as a result Enforcing, but Barclays (and possibly other apps) are reading that SELinux is not actually being enforced.
Interesting. Will post these finding in the main thread.
Do you have anything to add that could be helpful?
olivercervera said:
You are the man! You definitely spotted the method being used by this app. Thanks.
I had to leave LOS ROM because even without Magisk it would not run, so I installed another ROM. I verified the app runs, got props, installed Magisk and got new props.
There are all changes:
1. [ro.build.selinux]: [1] is changed to [ro.build.selinux]: [0] when Magisk is installed
2. [ro.runtime.firstboot] shows different values but I believe it's fine
3. The following are entirely missing when Magisk is installed
[selinux.reload_policy]: [1]
[service.adb.tcp.port]: [-1]
[sys.retaildemo.enabled]: [0]
[init.svc.clear-bcb]: [stopped]
I have the feeling that [ro.build.selinux]: [1] and [selinux.reload_policy]: [1] are key elements and Magisk is not hiding them properly. I would suppose these elements show that SELinux is not enforcing anymore. I tried changing these values, but at reboot they don't change.
I know obviously Magisk does not enforce SELinux, but hides that got set to Permissive. System thinks that is enforcing, and using command getenforce i get as a result Enforcing, but Barclays (and possibly other apps) are reading that SELinux is not actually being enforced.
Interesting. Will post these finding in the main thread.
Do you have anything to add that could be helpful?
Click to expand...
Click to collapse
If you use "resetprop ro.build.selinux 1" in a root shell, does the app start?
That will disappear at reboot of course, but it's easy to add to /magisk/.core/props to make it stick until Magisk is fixed.
Now, I don't think Magisk disables SELinux, why do you have it disabled?
Fif_ said:
If you use "resetprop ro.build.selinux 1" in a root shell, does the app start?
That will disappear at reboot of course, but it's easy to add to /magisk/.core/props to make it stick until Magisk is fixed.
Now, I don't think Magisk disables SELinux, why do you have it disabled?
Click to expand...
Click to collapse
Yes, Magisk changes SELinux to Permissive and hides this status.
Although my findings would be legit and those props should be hidden, in my Bank's case is not the issue.
I have discovered that if I uninstall Magisk Manager (but not uninstall root, just the app) my bank app works. However it does not work if I use "Hide Magisk".
Since the hidden app is called Unhide Magisk Manager, probably this app is looking for Magisk keyword.
For whatever reason when I run strace the app does crash and always reports that message (crash after reading prop).
I will post these findings in the support thread.
I don't know how to do it, but I would recompile Magisk Manager changing package ID and name, in theory should work.
I am having the same issue on my Galaxy S8 with the Barclays Mobile Banking app. I have tried using every option in Magisk but nothing seems to be working. In fact, the Barclays app actually asked for SU permissions when I first ran it which is odd to me.
Did anyone find a workaround for this? I read the posts in this thread but I am not savvy enough to understand all the codes and technical information written, so please excuse my ignorance in the matter. Is reverting to a completely stock ROM my only option at this point? I really need to start using this application as soon as possible.
Thank you.
Quick update guys!
The great Topjohnwu is working on a new update that includes a key feature for us: reinstalling Magisk Manager with a random package ID.
These changes are in his Github Repo. On this thread you can find unofficial versions of Magisk compiled from Github.
I have tested Magisk-v14.4-20171102-091345.zip: HELL IT WORKS!
In Magisk Manager: go to settings and you will have the option to reinstall Magisk Manager with a random package ID
Install Barclays from Play Store
Add Barclays to Magisk Hide
Open Barclays, it will behave correctly and will work!
This solves my problem, so I will be able to use the latest version of this app very soon (will wait for public beta).
On a side note, this update should als hide /Magisk partition, which was detected by @perillamint banking app, so might be worth trying it.
I have installed this Hanabank app (hopefully is the right one!) and added it to Magisk Hide. The app opens up correctly but I can't understand anything. I see some stuff moving on screen and on the upper left I see a lock icon (to login?)
If I don't add the app to Magisk Hide it shows an incomprehensible message and closes.
Hope you find this helpful.
Please see photos below.
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
mundodisco8 said:
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
Click to expand...
Click to collapse
Yes, a fresh start from a stock Nexus 5X I have at work. I did not register the app with my account during the test, all I needed to do was to get to the Welcome Screen: if Barclays detects root you don't get anything. Probably you need to reinstall Barclays App.
Once Magisk Manager is hidden with the new ID you can't go back to the original: you don't have any option. So if you still have it means there is a problem.
mundodisco8 said:
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
Click to expand...
Click to collapse
He's talking about a new Hide Manager feature that is much improved from the current implementation. It's not yet available officially, so you'll have to build yourself from the GitHub repo, or download from the unofficial snapshots thread that @olivercervera linked.
Didgeridoohan said:
He's talking about a new Hide Manager feature that is much improved from the current implementation. It's not yet available officially, so you'll have to build yourself from the GitHub repo, or download from the unofficial snapshots thread that @olivercervera linked.
Click to expand...
Click to collapse
I didn't even consider the possibility he didn't realise I was using the unofficial/self compiled version... I even linked it!!!
Thanks
olivercervera said:
I didn't even consider the possibility he didn't realise I was using the unofficial/self compiled version... I even linked it!!!
Thanks
Click to expand...
Click to collapse
It's actually quite apparent that he's talking about the current implementation, since the updated, unreleased, feature doesn't have anything named "unhide" to click.
With the new implementation you unhide the hidden Manager by reinstalling and opening it.
Hi guys,
Yes, I installed the latest version, following the link OliverCervera linked. I hid it using the usual method of going to options/hide magisk, and I got a new app, as usual. clicking on it to unhide prompted for root permissions for an app with a random ID (as expected). The next time, I wasn't that lucky, and the whole thing crashed. Anyway, it's a nightly, so I won't complain, and I will check it later, as sadly I don't have time to do it now.
In any case, my app was marked, because I opened it with the official release of Magisk and it detected root, and once it does, it keeps the "this phone is rooted" status until you do a factory reset. I think you can call them to tell them that it was a mistake, and they can unlock it but I'm not 100% sure about this last point.
Thanks for the work, anyway!
mundodisco8 said:
Hi guys,
Yes, I installed the latest version, following the link OliverCervera linked. I hid it using the usual method of going to options/hide magisk, and I got a new app, as usual. clicking on it to unhide prompted for root permissions for an app with a random ID (as expected). The next time, I wasn't that lucky, and the whole thing crashed. Anyway, it's a nightly, so I won't complain, and I will check it later, as sadly I don't have time to do it now.
In any case, my app was marked, because I opened it with the official release of Magisk and it detected root, and once it does, it keeps the "this phone is rooted" status until you do a factory reset. I think you can call them to tell them that it was a mistake, and they can unlock it but I'm not 100% sure about this last point.
Thanks for the work, anyway!
Click to expand...
Click to collapse
If you install the correct version of the Manager you won't have an unhide app after hiding the Manager. That's changed...
Your problem is probably that the unofficial Manager has a different signature, so it won't install over the official Manager. Solution: Uninstall the official Manager before installing the unofficial snapshot.
Have you tried just clearing all data for the app after it detects root? That usually works for an app that "remembers" root. But, I've never tested the app in question so...
Didgeridoohan said:
If you install the correct version of the Manager you won't have an unhide app after hiding the Manager. That's changed...
Your problem is probably that the unofficial Manager has a different signature, so it won't install over the official Manager. Solution: Uninstall the official Manager before installing the unofficial snapshot.
Have you tried just clearing all data for the app after it detects root? That usually works for an app that "remembers" root. But, I've never tested the app in question so...
Click to expand...
Click to collapse
I think they keep your signature and store it on their servers. Barclays is really focused when it comes to not allowing people to use their app on rooted phones, but as I said, I would need to double check. And I kind of get why they do it, as they went all the way to avoid to pay Android to use Android Pay and they developed their own platform to pay over NFC (not judging here, it's up to them if they think it's the best solution). At the end of the day, root is exploited through a security flaw, and "the bad guys could get your moneys", and even though they could display a message at launch that says "hey, you are rooted, the bad guys could get AAAALLL of the moneys, it's up to you" people would still want to sue them if they mess up... but it's funny that they allow you to get into the online banking web on a rooted phone, where the bad guys could see your password...
Hi Guys!
Recently I hope to use Tasker to do something automatically when the phone is turned on, but I found that Tasker can't start when my phone is turned on but locked.
So I wrote an Android app that uses the shell to enter the password at boot time, but even if I used DirectBoot mode(developer.android.com/training/articles/direct-boot) it still doesn't work.
So I tried to write a module using Magisk, and automatically entered the password when I booted. This time I raised succeeded.
I think there may be other people who have the same needs as me, so I do a function that can customize the password for others to use.
At first we need install AutoInputBootPinManager(github.com/ZeroingIn/AutoInputBootPinManager) to configure your PIN. The application needs to grant root privileges.
Next we download and install this module(github.com/ZeroingIn/AutoInputBootPin) and reboot phone to enjoy it.
If you have any questions, please submit an issue.
Thank you all.
Interesting idea.
There are several modules available that use a shell script UI, run through a terminal emulator, to change settings for the module. App systemizer, Unified Hosts Adblock, MagiskHide Props Config, Energized Protection, etc. Take a look at them for inspiration.
A couple of things:
An explanation of the command in post-fs-data.sh might be a good idea.
Code:
supolicy --live "allow untrusted_app default_android_service service_manager find"
And, why are you setting this prop? As far as I can tell that's for the app Brevent...
Code:
log.tag.BreventServer=DEBUG
Didgeridoohan said:
Interesting idea.
There are several modules available that use a shell script UI, run through a terminal emulator, to change settings for the module. App systemizer, Unified Hosts Adblock, MagiskHide Props Config, Energized Protection, etc. Take a look at them for inspiration.
A couple of things:
An explanation of the command in post-fs-data.sh might be a good idea.
Code:
supolicy --live "allow untrusted_app default_android_service service_manager find"
And, why are you setting this prop? As far as I can tell that's for the app Brevent(play.google.com/store/apps/details?id=me.piebridge.brevent&hl=en)...
Code:
log.tag.BreventServer=DEBUG
Click to expand...
Click to collapse
Thank you very much for your advice, I will try it. Any progress, I will be posted in this post.
The setting of this prop is my mistake, and you have carefully discovered this bug that I have not noticed.
Because I was a beginner to make the Magisk module, I didn't see the Magisk Module Template(github.com/topjohnwu/magisk-module-template) at first, so I wrote it with reference to the Privileged Api Booter(github.com/Magisk-Modules-Repo/magisk-privileged-api-booter).I will fix this problem right away.
ZeroingIn said:
Thank you very much for your advice, I will try it. Any progress, I will be posted in this post.
The setting of this prop is my mistake, and you have carefully discovered this bug that I have not noticed.
Because I was a beginner to make the Magisk module, I didn't see the Magisk Module Template(github.com/topjohnwu/magisk-module-template) at first, so I wrote it with reference to the Privileged Api Booter(github.com/Magisk-Modules-Repo/magisk-privileged-api-booter).I will fix this problem right away.
Click to expand...
Click to collapse
In that case you have a couple of more things to rectify. The first part I mentioned, about the post-fs-data.sh script is also from that module. So, I'm going to assume you do not need it for your purpose. I'd suggest removing that as well... And after you've done that, you should also go in and edit config.sh and change PROPFILE and POSTFSDATA from true to false, because you're not using them anymore. From the looks of it you're only using service.sh, so only LATESTARTSERVICE needs to be active.
Didgeridoohan said:
In that case you have a couple of more things to rectify. The first part I mentioned, about the post-fs-data.sh script is also from that module. So, I'm going to assume you do not need it for your purpose. I'd suggest removing that as well... And after you've done that, you should also go in and edit config.sh and change PROPFILE and POSTFSDATA from true to false, because you're not using them anymore. From the looks of it you're only using service.sh, so only LATESTARTSERVICE needs to be active.
Click to expand...
Click to collapse
You are right, I modified it with reference to the template.Thanks a lot.
Are you going to.update this at all?
I have a bug if you are...
I only have 1 pin... But all 3 fire... Since there's no way to stop them without deleting it from the script
Hey all,
Android 7.1.1, Magisk 20.4 (on Stable update channel), Magisk Manager is hidden (as "Manager", tried "MM" as well) and the updated Sony app was added to Magisk Hide list.
Data & Cache were cleared for the app as well.
https://play.google.com/store/apps/details?id=com.playstation.remoteplay
But on launch, it crashes with error 88001003, which seems to indicate root detection.
The previous version 3.0 has worked flawlessly on the same system with same settings.
Does anyone know a workaround, could the app now be checking the system for root-compatible apps and block from there ?
Any way to find out how the app detects root?
Any feedback is very welcome.
Full Manager obfuscation capabilities aren't available on Android versions lower than 9. Could be what's causing your issues...
For what it's worth I can start the app just fine on my Android 9 OP3T with Canary build 21004 and hidden Canary Manager 310.
Try uninstalling the Manager and see if that makes a difference.
Log Cat info :
Code:
[10-15 14:29:26.760 4218:4218 D/PRCNT_#RecentsModel#]
#createTaskStack# :: task=PS Remote Play, isTopRunningTask=false, isVisible=false, isLocked=false, isKnoxTask=false, isHideThumbnail=false, isLongLive=false
Didgeridoohan said:
Try uninstalling the Manager and see if that makes a difference.
Click to expand...
Click to collapse
Sadly no difference (and deleted app's data + cache of course). Would you have any other ideas?
Spartacus500 said:
Log Cat info :
Code:
[10-15 14:29:26.760 4218:4218 D/PRCNT_#RecentsModel#]
#createTaskStack# :: task=PS Remote Play, isTopRunningTask=false, isVisible=false, isLocked=false, isKnoxTask=false, isHideThumbnail=false, isLongLive=false
Click to expand...
Click to collapse
Thanks but I'm not sure how it's supposed to help?
Ps24u said:
Sadly no difference (and deleted app's data + cache of course). Would you have any other ideas?
Click to expand...
Click to collapse
Many things may trigger detection, not only Magisk:
https://www.didgeridoohan.com/magisk/MagiskHide#hn_Hiding_root_from_apps
Thanks Didgeridoohan, after many hours I found 2 culprits that triggered root detection on my system.
For the Sony Remote Play app mentionned in this thread: SELinux set to permissive was the culprit.
After disabling the Magisk module for SElinux, the app runs normally, no crash, all good.
But it's pretty annyoing having to reboot to enable/disable SELinux just to run this app.
Would you know if there's a way to either toggle SElinux in realtime while the os is running or to have the Sony app always believe SElinux is set to enforcing ?
For the second app, it was dumb, it looked for "twrp" folder on internal storage. After I renamed the folder, the app launches and runs perfectly.
But again it's far from ideal to do it manually all the time. So for this case also, is there a way to hide the "twrp" folder from this app, either via magisk module, script or otherwise?
Thanks a lot for your tips and awesome site, probably the best ressource for all things Magisk. :bow:
Ps24u said:
Would you know if there's a way to either toggle SElinux in realtime while the os is running or to have the Sony app always believe SElinux is set to enforcing ?
Click to expand...
Click to collapse
That's just a simple terminal command (which is exactly what the module uses and runs at boot). You can run that whenever and it'll change selinux to the state you want on the fly, no need for a reboot.
Permissive:
Code:
setenforce 0
Enforcing:
Code:
setenforce 1
Needs to be run as su, of course (you could add "su -c" in front of the command to make it easy).
You could either set up a script with an app like Tasker or use an app that's made for toggling selinux (if you look around there should be a few available).
For the second app, it was dumb, it looked for "twrp" folder on internal storage. After I renamed the folder, the app launches and runs perfectly.
But again it's far from ideal to do it manually all the time. So for this case also, is there a way to hide the "twrp" folder from this app, either via magisk module, script or otherwise?
Click to expand...
Click to collapse
To hide the TWRP directory you could use an isolation app to stop the app from detecting what you have on your device. When it comes up the internal storage, Storage isolation is the most powerful.
Another option could be to set up a Tasker task (or similar) that renames the folder and then launches the app. Another Tasker profile could then keep track of when the app is running and rename the folder again once it's closed. Or it might be more reliable to run a task manually when you're done with the app. I'm just mentioning this to show some options. It's nowhere near as elegant as using an isolation app...
Thanks a lot for your tips and awesome site, probably the best ressource for all things Magisk. :bow:
Click to expand...
Click to collapse
No worries, I'm glad you found it useful and could get things figured out.
Didgeridoohan said:
That's just a simple terminal command (which is exactly what the module uses and runs at boot). You can run that whenever and it'll change selinux to the state you want on the fly, no need for a reboot.
Permissive:
Code:
setenforce 0
Enforcing:
Code:
setenforce 1
Needs to be run as su, of course (you could add "su -c" in front of the command to make it easy).
You could either set up a script with an app like Tasker or use an app that's made for toggling selinux (if you look around there should be a few available).
Click to expand...
Click to collapse
That strangely doesn't do the trick. If SElinux is set to permissive at boot via Magisk module, toggling to Enforcing afterwards doesn't allow the app to launch (crashes with same error 88001003, even after deleting data+cache).
It seems the app somehow knows if SElinux was set to permissive on boot and doesn't care if SElinux is switched to Enforcing afterwards.
Due to how my setup works I need Permissive at boot (mount cifs folders) so I'm in pinch.
I use selinux_permissive_v2.zip on Magisk 20.4.
I also tried to set SElinux to permissive via a script in /data/adb/service.d
Code:
#!/system/bin/sh
setenforce 0
But same results, toggling to Enforcing afterwards doesn't allow the app to launch.
I tried toggling with "su -c setenforce 1" in Termux, and with SELinux Toggler.
However, If the phone boots with Enforcing, and then I toggle to Permissive after boot and then back to Enforcing, the app launches without issues, strange!
There is a mystery going on here...
Didgeridoohan said:
To hide the TWRP directory you could use an isolation app to stop the app from detecting what you have on your device. When it comes up the internal storage, Storage isolation is the most powerful.
Click to expand...
Click to collapse
That worked straight away, awesome!
On my Samsung Galaxy S7 edge Custom Pie 9.0 Rom NFE root Magisk, this application does not work, keeps saying "something went wrong", I changed the twrp folder to aaaTWRPaaa but still the application won't work. I also changed selinux mode changer to permisive, but after this change also doesn't work, my antivirus screams selinux permisive is dangerous. Any ideas ?
Spartacus500 said:
On my Samsung Galaxy S7 edge Custom Pie 9.0 Rom NFE root Magisk, this application does not work, keeps saying "something went wrong", I changed the twrp folder to aaaTWRPaaa but still the application won't work. I also changed selinux mode changer to permisive, but after this change also doesn't work, my antivirus screams selinux permisive is dangerous. Any ideas ?
Click to expand...
Click to collapse
From my testing, PS Remote Play doesn't care about TWRP folder.
Spartacus, for now try to boot with SElinux to Enforced, and clear data/cache for the app.
I hope Didgeridoohan can help solve the SElinux pemissive at boot mystery.
Ps24u said:
I hope Didgeridoohan can help solve the SElinux pemissive at boot mystery.
Click to expand...
Click to collapse
Not really... I've no idea why the app would behave like that.
But I have a thought: how do you set up your cifs folders mounting? With a script? If so, could you temporarily set SELinux permissive only during that time? If you're lucky, it might be that's enough... I have no idea how cifs folder mounting works, so I'm just throwing ideas aimed at your head.
Ps24u said:
From my testing, PS Remote Play doesn't care about TWRP folder.
Spartacus, for now try to boot with SElinux to Enforced, and clear data/cache for the app.
I hope Didgeridoohan can help solve the SElinux pemissive at boot mystery.
Click to expand...
Click to collapse
I did as you said, deleted the TWRP folder from internal storage, also deleted the Titanium backup folder, no result, Selinux I have enforcing, the application still shows an error on startup
I also have a question, is your audit error the same as mine? Maybe there is a bug here
audit (error)
Code:
type=1400 audit(1603135249.830:2343): avc: denied { read } for pid=7381 comm="zCloudWorkerThr" name="enforce" dev="selinuxfs" ino=4 scontext=u:r:untrusted_app:s0:c212,c259,c512,c768 tcontext=u:object_r:selinuxfs:s0 tclass=file permissive=1 SEPF_SM-N935F_9_0001 audit_filtered
Code:
type=1400 audit(1603135249.830:2344): avc: denied { open } for pid=7381 comm="zCloudWorkerThr" path="/sys/fs/selinux/enforce" dev="selinuxfs" ino=4 scontext=u:r:untrusted_app:s0:c212,c259,c512,c768 tcontext=u:object_r:selinuxfs:s0 tclass=file permissive=1 SEPF_SM-N935F_9_0001 audit_filtered
Didgeridoohan said:
Not really... I've no idea why the app would behave like that.
But I have a thought: how do you set up your cifs folders mounting? With a script? If so, could you temporarily set SELinux permissive only during that time? If you're lucky, it might be that's enough... I have no idea how cifs folder mounting works, so I'm just throwing ideas aimed at your head.
Click to expand...
Click to collapse
In the context of Cifs, I need SELinux permissive during actual use, not only during the mounting phase, so it cannot be done unfortunately.
Spartacus500 said:
I did as you said, deleted the TWRP folder from internal storage, also deleted the Titanium backup folder, no result, Selinux I have enforcing, the application still shows an error on startup
I also have a question, is your audit error the same as mine? Maybe there is a bug here
audit (error)
Click to expand...
Click to collapse
I'm not sure what / how to "audit" ?
I'm back again, Samsung Galaxy S7 edge Custom Pie 9.0 Rom. Selinux enforcing, PS Remote Play 4.0.0 keeps crashing, I uninstalled Magisk root and PS Remote Play 4.0.0 app works fine on my S7, I reload Magisk root via TWRP and PS Remote Play 4.0.0 shows error again ...
You've added PS Remote Play to the "Magisk Hide" list already, right ?
If not, add it, then clear data/cache or Uninstall and reinstall the app but don't launch it, and reboot.
Ps24u said:
You've added PS Remote Play to the "Magisk Hide" list already, right ?
If not, add it, then clear data/cache or Uninstall and reinstall the app but don't launch it, and reboot.
Click to expand...
Click to collapse
Of course, right after installing Magisk I hid hide root for PS Remote Play 4.0.0 and also changed the name of Magisk manager to something else, cleaning the memory for this application does not help either, every time I open the application it says "something went wrong" and error code ... All I need to do is remove the Magisk root and the app works. I'm using Magisk 20400, tested 21000 and Canary 21005 version and on neither of these versions this app shows the same error
Sorry I can't help more. I'm on Magisk 20.4 and M.Manager 7.5.1, also on Android 7.1.1 official Sony rom.
I performed the test, removed the Magisk root, PS Remote Play 4.0.0 works, when I install only Magisk manager, then PS REMOTE PLAY 4.0.0 detects Magisk and shows an error, after removing Magisk manager, PS Remote Play 4.0.0 works again, but it's enough that I will upload root Magisk, hide root hide, remove Magisk manager then PS Remote Play 4.0.0 shows error ...
I've got the same issue, anyone find a workaround?
Same here. This app work in the past, now it doesnt open. I dont know why Sony now dont left we use it because of root. It thinks that we will hack something. Mas, if Sony continues to do this and **** the past generation with last updates I will left consoles for while.
Im using Android 8.1
If you've installed a custom ROM that doesn't come with Android Auto pre-installed, you'll get the following error when connecting your phone to your car (the Android Auto app opens correctly, the error is only shown when you connect to the car):
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This error happens because Android Auto is not installed as a system app under /system/priv-app.
The following steps will ensure you can convert Android Auto from a user app to a system app. As usual, I'm not responsible for any damage to your device due to this guide.
Requirements:
Magisk and Magisk Manager (I've tested with 24.3)
Android Auto installed as a user app (I have 7.6.621734-release)
A computer with ADB or an app like Termux
I've tested this on a Xiaomi 11T Pro with Pixel Experience Plus Slim 12.1 (GSI) and Android 12, but it should work for other devices and ROMs as well.
Steps:
Install BusyBox from the Play Store
I could only install to /system/bin, but try out what works for you ROM
Click "Install" and wait for a successful message
(optional) This is just a BusyBox installer, I think you can remove the app at the end of this tutorial
Download terminal_systemizer Magisk module. Keep in mind the latest official release is outdated and does not work on Android 12 and Magisk 24.3. Because of this, you can download it from this post on XDA or clone this fork on GitHub and zip it
Install the Magisk module through Magisk Manager and reboot
Now connect your phone to your computer and launch an adb shell with adb shell, or open Termux
Enter root mode by typing su (not sure if this is required on Termux, but you must do it on adb shell)
Verify that the systemizer module is working by running the help command
Code:
# systemize -h
App Systemizer (Terminal Emulator) v17.5(73)
by veez21, KreAch3R, entr0pia
Usage: systemize
or: systemize [options]...
Options:
-nc removes ANSI escape codes
-f use 'Set SELinux' in the session for faster app listing
-a [package name] systemizes the package name(s) provided
-d [apk dir] systemizes the apk(s) provided
-l list all systemized apps
-h show this message
If you get a similar output, you're ready to proceed
Now run the systemize command without any arguments and answer the prompts accordingly. The app you want to systemize is com.google.android.projection.gearhead, which is Android Auto. You want to install it to /system/priv-app and NOT to /system/app.
Below is a sample output:
Code:
============================================
App Systemizer (Terminal Emulator) v17.5(73)
by veez21, KreAch3R, entr0pia
============================================
BusyBox v1.32.0-Stericson
/system/bin/busybox
============================================
Enter logs to upload logs
============================================
Set SELinux Enabled: false
SELinux Status: Enforcing
============================================
1 - Systemize Installed Apps (Listed)
2 - Systemize Installed Apps (Enter label)
3 - Systemize given APK
s - Set SELinux
0 - Exit
[CHOICE]: 1
Loading Apps [/]
============================================
Installed Apps =============================
============================================
...
18 - com.google.android.projection.gearhead
...
To systemize multiple apps, enter multiple number. Example: "1 23 30"
x - Back to Menu
r - Refresh list
0 - Exit
[CHOICE]: 18
============================================
Systemizing com.google.android.projection.gearhead
Checking APK directory - OK
Checking package name - com.google.android.projection.gearhead
Where to install?
< 1 - /system/app | 2 - /system/priv-app | 0 - cancel > : 2
Checking APK size - 41M
Transfering base.apk(com.google.android.projection.gearhead) to '/system/priv-app'...
Transfering libs
Granting Permissions
/system/bin/systemize[584]: aapt: can't execute: Permission denied
com.google.android.projection.gearhead - Done
Reboot to apply changes
Return to menu? < y | n >: n
Notice that it threw an error at the end, but it still worked for me. Not sure what happened, let me know if this also happened to you.
Reboot
Check that Android Auto is a system app by opening its app info page. If there is no uninstall button like below, it's installed as a system app
Please reply if you have any questions or issues!
Hope this helps
Good guide
Yh this error comes because Android auto needs to be installed as an system app.
Thank you for sharing this, I made all the steps, it worked without errors but I see the app as system app but I don't have "open" button, in fact the app itself doesn't appear with others (I had to search in settings>app)
Any idea? Thx
suiller said:
Thank you for sharing this, I made all the steps, it worked without errors but I see the app as system app but I don't have "open" button, in fact the app itself doesn't appear with others (I had to search in settings>app)
Any idea? Thx
Click to expand...
Click to collapse
Hm that's weird, I don't see how that could happen.
Try grabbing an APK from apkmirror and installing the app again (must be the same version or newer)
I managed it... now I see the app as regular (system) app...
The problem was busybox, I used that one provided as magisk module and worked at 1st attempt
diogotc said:
Hm that's weird, I don't see how that could happen.
Click to expand...
Click to collapse
I dunno why but busybox was the problem, I just installed the version provided here in 1st post, even if without error something happened so I had the app moved under priv but it wasn't available as regular/working app
Anyway I had to:
restore androidauto from systemize, reboot
deinstall androidauto, reboot
install busybox as module from magisk
re-run systemize as instructions at 1st post, reboot
Hi
no work for me
have asus rog 5 with china rom
installed android auto
root ok
i follow this guide...android auto install is marked ok and seems all ok....it is system app
but in my car i obtain a loop android auto: link, after 1 sec stop, then link, then stop and so away
if i run systemize again, android auto is not became a system app anymore
Thanks bro work great Xiaomi 12s ultra 13.0.8
Thanks for your guide,it worked on a Redmi Note 7 with latest PPUI ROM, but as soon as I remove Magisk the app reverts to user app and not system app. Since I cant get my bank app to work on rooted phones, even with Magisk hidden, is there a way to keep AA as system app without having to keep Magisk installed?
farrayoles said:
Thanks for your guide,it worked on a Redmi Note 7 with latest PPUI ROM, but as soon as I remove Magisk the app reverts to user app and not system app. Since I cant get my bank app to work on rooted phones, even with Magisk hidden, is there a way to keep AA as system app without having to keep Magisk installed?
Click to expand...
Click to collapse
As far as I know you'll need Magisk installed. The latest version of the Pixel Experience GSI already includes an Android Auto stub to avoid this problem, maybe you can ask that ROM developer to do the same.
Anyway, you should be able to bypass your banking app verification. Have you added it to the DenyList as well as change the package name of MagiskManager?
You can try an app like RootBeer to see what else you need to do.
It might also help deleting the data from the banking app, since it might store if you had root or not.
Hope that helps!
Skyline_r said:
Thanks bro work great Xiaomi 12s ultra 13.0.8
Click to expand...
Click to collapse
Does wireless android auto work for you? My AA crashes on the xiaomi mi fold x 2
Does Root is required to do so before start? Becuase I can't install Busybox if the phone is not rooted.
I tried this on my SM-X200 and all the steps worked (can not uninstall at app info) but when I went to plug the tablet into my car it still gives me error 22
Skyline_r said:
Thanks bro work great Xiaomi 12s ultra 13.0.8
Click to expand...
Click to collapse
hi, can i check if you performed these steps on a custom rom? or the chinese rom? thanks!
diogotc said:
If you've installed a custom ROM that doesn't come with Android Auto pre-installed, you'll get the following error when connecting your phone to your car (the Android Auto app opens correctly, the error is only shown when you connect to the car):
View attachment 5636057
This error happens because Android Auto is not installed as a system app under /system/priv-app.
The following steps will ensure you can convert Android Auto from a user app to a system app. As usual, I'm not responsible for any damage to your device due to this guide.
Requirements:
Magisk and Magisk Manager (I've tested with 24.3)
Android Auto installed as a user app (I have 7.6.621734-release)
A computer with ADB or an app like Termux
I've tested this on a Xiaomi 11T Pro with Pixel Experience Plus Slim 12.1 (GSI) and Android 12, but it should work for other devices and ROMs as well.
Steps:
Install BusyBox from the Play Store
I could only install to /system/bin, but try out what works for you ROM
Click "Install" and wait for a successful message
(optional) This is just a BusyBox installer, I think you can remove the app at the end of this tutorial
Download terminal_systemizer Magisk module. Keep in mind the latest official release is outdated and does not work on Android 12 and Magisk 24.3. Because of this, you can download it from this post on XDA or clone this fork on GitHub and zip it
Install the Magisk module through Magisk Manager and reboot
Now connect your phone to your computer and launch an adb shell with adb shell, or open Termux
Enter root mode by typing su (not sure if this is required on Termux, but you must do it on adb shell)
Verify that the systemizer module is working by running the help command
Code:
# systemize -h
App Systemizer (Terminal Emulator) v17.5(73)
by veez21, KreAch3R, entr0pia
Usage: systemize
or: systemize [options]...
Options:
-nc removes ANSI escape codes
-f use 'Set SELinux' in the session for faster app listing
-a [package name] systemizes the package name(s) provided
-d [apk dir] systemizes the apk(s) provided
-l list all systemized apps
-h show this message
If you get a similar output, you're ready to proceed
Now run the systemize command without any arguments and answer the prompts accordingly. The app you want to systemize is com.google.android.projection.gearhead, which is Android Auto. You want to install it to /system/priv-app and NOT to /system/app.
Below is a sample output:
Code:
============================================
App Systemizer (Terminal Emulator) v17.5(73)
by veez21, KreAch3R, entr0pia
============================================
BusyBox v1.32.0-Stericson
/system/bin/busybox
============================================
Enter logs to upload logs
============================================
Set SELinux Enabled: false
SELinux Status: Enforcing
============================================
1 - Systemize Installed Apps (Listed)
2 - Systemize Installed Apps (Enter label)
3 - Systemize given APK
s - Set SELinux
0 - Exit
[CHOICE]: 1
Loading Apps [/]
============================================
Installed Apps =============================
============================================
...
18 - com.google.android.projection.gearhead
...
To systemize multiple apps, enter multiple number. Example: "1 23 30"
x - Back to Menu
r - Refresh list
0 - Exit
[CHOICE]: 18
============================================
Systemizing com.google.android.projection.gearhead
Checking APK directory - OK
Checking package name - com.google.android.projection.gearhead
Where to install?
< 1 - /system/app | 2 - /system/priv-app | 0 - cancel > : 2
Checking APK size - 41M
Transfering base.apk(com.google.android.projection.gearhead) to '/system/priv-app'...
Transfering libs
Granting Permissions
/system/bin/systemize[584]: aapt: can't execute: Permission denied
com.google.android.projection.gearhead - Done
Reboot to apply changes
Return to menu? < y | n >: n
Notice that it threw an error at the end, but it still worked for me. Not sure what happened, let me know if this also happened to you.
Reboot
Check that Android Auto is a system app by opening its app info page. If there is no uninstall button like below, it's installed as a system app
View attachment 5636069
Please reply if you have any questions or issues!
Hope this helps
Click to expand...
Click to collapse
Hey Bro. I'm trying to follow your instruction but I'm not able to use the busy box it's saying that I should remove the superuser.
Can you please help?
Hi, diogotc
Thank you so much, worked flawlessly. The instructions you provided were excellent. I used the systemizer on AA 8.3.624114. I used this on a Lenovo Legion Duel 2 with CN rom Android 12, with Magisk 25.2.
One difference I had was the AA app was just named Android Auto (number 3) in the systemizer list, but I had zero issues.
Thanks again!
The con.android.... path does not appear... I stay un systemize option 1 por 2 and it tells me that the file does not existe, do i hace to create it un busybox?
I don't understand why it doesn't appear it xd
Thanks for this
Just followed your instructions running ThinROM A13 v4 [15/12/2022]-[GVK9-[EXYNOS]-[SM-N986B]-[SM-N985F] on my SGN20U (SM-N986B/DS)
I couldn't get SU permission, Terminal Systemizer was greyed out in MM, so installed ADB Root v1.0 and it all worked like a charm from there.
Hi,
Thanks for the guide. I want to install the Android Auto on Redmi Pad so that I can use the pad as an Entertainment HeadUnit in my car. Can I follow these instructions and still it will work ?
Let me know. Appreciate your help and support
Thanks for that useful post but i'm receiving error after choose 2 - /system/priv-app and paste com.google.android.projection.gearhead
/data/app/com.google.android.projection.gearhead-*/base.apk doesn't exist!
Android auto is already insattaled. i'm using windows 10 and adb shell command.
Any idea ?