[GUIDE]How to install Bromite SystemWebView without Magisk (Android 12+ included) - Android General

This has not been tested on any other version other than Android 12.1. If you have issues please report them here or open an issue on GitHub.
I just upgraded to LineageOS 19 from 18.1 and as usual I want to apply my own modifications on top of it but the NanoDroid script that I previously used doesn't seem to work on 19. I couldn't find an answer neither on r/LineageOS, r/fossdroid or even XDA so I wrote a way to install Bromite SystemWebView in a way that's a lot more elegant and doesn't need Magisk or root.
Method 1 (preferred):
Download the flashable package and install it in recovery mode either by placing it on the SD card or by sideloading, then reboot:
Bash:
adb sideload BromiteSystemWebViewOverlay.zip
Download the latest Bromite SystemWebView release and install it as you would a regular app.
Navigate to Settings > Developer options > WebView implementation and select Bromite SystemWebView.
Method 2 (legacy):
Enable Rooted debugging by navigating to Settings > Developer options > Rooted debugging.
Connect your phone to your PC and type
Bash:
adb root
Mount the vendor folder:
Bash:
adb shell mount -o rw,remount /vendor
Copy the package downloaded from here to the overlay directory:
Bash:
adb push treble-overlay-bromite-webview.apk /vendor/overlay
Mount the system as read-write:
Bash:
adb shell mount -o rw,remount /
Copy the OTA survival script to the appropriate location:
Bash:
adb push 99-bromite-webview.sh /system/addon.d
Make the script executable:
Bash:
adb shell chmod 755 /system/addon.d/99-bromite-webview.sh
Reboot the device:
Bash:
adb reboot
Download the latest Bromite SystemWebView release and install it as you would a regular app.
Navigate to Settings > Developer options > WebView implementation and select Bromite SystemWebView.
For a more in-depth explanation check the GitHub repository.

It is worth mentioning that after installing Bromite SystemWebView, developers will not provide any support when their banking applications are not functioning properly. Proven in practice.

ze7zez said:
It is worth mentioning that after installing Bromite SystemWebView, developers will not provide any support when their banking applications are not functioning properly. Proven in practice.
Click to expand...
Click to collapse
I never encountered a mobile banking app that uses WebView (at least for the main functionality), but your mention is most welcome.

I've been debloating and degoogling and old HTC 10 running android 8. I've been wanting to get bromite installed because chrome is installed as the webview. I'm rooted, but unfortunately the webview manager magisk module fails to install.
I just found this thread and would love to give this approach a try.
I have the /system/addon.d directory. I have /vendor but not /vendor/overlay. I have /mnt but not /mnt/system. The scripts I have in /system/addon.d (fdroid and minmicrog) only reference the system app and priv-app directories so no help there, unless those locations are fallback options. Can your instructions be adjusted for android 8?
I also have a rooted microg LOS 19 moto g7 that's served as a reference with my debloating/degoogling effort. I looked at the contents of /vendor/overlay there and found that all but one of the apk's in there had "vendor" in the name, so I searched recursively from / on my HTC and didn't find any apk's with "vendor" in the name. Do you have any other ideas on how I might identify the equivalent directory on my HTC?

TheShanMan said:
I have /vendor but not /vendor/overlay.
Click to expand...
Click to collapse
Then try looking into /system/product/overlay.
TheShanMan said:
I have /mnt but not /mnt/system.
Click to expand...
Click to collapse
Your path will be /mnt/system only if you mount the root from recovery mode.
TheShanMan said:
all but one of the apk's in there had "vendor" in the name
Click to expand...
Click to collapse
The name doesn't matter, you can call the apks anything and they will still work.
Can you attach the output of the following command?
Bash:
adb shell cmd overlay list

arovlad said:
Then try looking into /system/product/overlay.
Click to expand...
Click to collapse
I don't have a /system/product directory. Here are the contents of my /system directory:
Code:
addon.d
app
bin
build.prop
compatibility_matrix.xml
customize
etc
fake-libs
fake-libs64
fonts
framework
lib
lib64
lost+found
manifest.xml
media
priv-app
tts
usr
vendor
xbin
And since "vendor" is part of the discussion, here are the contents of my /system/vendor directory:
Code:
app
bin
compatibility_matrix.xml
etc
firmware
framework
lib
lib64
manifest.xml
media
radio
rfs
ueventd.rc
arovlad said:
Can you attach the output of the following command?
Bash:
adb shell cmd overlay list
Click to expand...
Click to collapse
The output from that command is nothing.
I'm happy to try as much as you'd like, including experimentation (I've gotten very used to nandroid backups and restores while degoogling and debloating ). Thanks for the help!

Try it out:
Installing SystemWebView
Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser! - bromite/bromite
github.com

Yeah I've seen that. It's a bit complicated, which is why I was hoping to either do it via the magisk manager module or via these steps. Ultimately if all else fails, I may give that a try. Hoping @arovlad will have the magic touch here, but I totally understand if there's no desire to invest time figuring out how to do this on an old device and android version.

TheShanMan said:
I totally understand if there's no desire to invest time figuring out how to do this on an old device and android version.
Click to expand...
Click to collapse
I am all for supporting old hardware. The thing is I actually thought every device running Project Treble (TL;DR Android 8 and above) use overlays of some kind.
I have the following ideas:
Do steps 1-3 as explained above and then make a folder called overlay inside the vendor partition:
Bash:
adb shell mkdir -m 755 /vendor/overlay
Do step 4 and then run the following command:
Bash:
adb shell cmd overlay enable com.arovlad.bromite.webview.overlay
TheShanMan said:
The output from that command is nothing.
Click to expand...
Click to collapse
Does it output nothing or does it output cmd: Can't find service: overlay? If the service cannot be found then the device may not be Treble-enabled. Please check if it is.
If it is try running:
Bash:
adb shell cmd overlay dump
and paste the output here.
TheShanMan said:
Thanks for the help!
Click to expand...
Click to collapse
Thank you for your patience and investing time in this.
Edit: added link for Treble support

It outputted nothing, and the treble check app says it's not enabled. Does that mean I'm out of luck or is there anything else to try? Thanks!

TheShanMan said:
It outputted nothing
Click to expand...
Click to collapse
You mean the first command, the second, or both? Please use quotes accordingly so I can know what you're referring to.
TheShanMan said:
the treble check app says it's not enabled. Does that mean I'm out of luck...?
Click to expand...
Click to collapse
You may be. You mentioned earlier that the Magisk module fails to install and that may be because your ROM is not Treble-enabled.
TheShanMan said:
is there anything else to try?
Click to expand...
Click to collapse
Have you tried creating the overlay folder manually and then enabling it via ADB as I wrote above?

Sorry, when I said it outputted nothing, it was in response to your question about the command "adb shell cmd overlay list". I tried creating the overlay folder and enabling it. The enable command gave no output so I don't know if it worked or not. I tried rebooting and then checking the webview setting in dev options, but it's still not there.
I'm guessing you assumed I would also then do steps 6 and 7. Is that right? If so, I'll have to try creating a magisk module to put the script in that location and hope it runs. I can't touch the actual system partition because doing so causes VoLTE to stop working on my phone, so I'm doing all my debloating/degoogling through magisk modules. I don't mind giving this a try, but since my phone isn't treble enabled, I'd like to verify that you think I ought to before I spend the time creating a magisk module for it.
Appreciate the help!

TheShanMan said:
The enable command gave no output so I don't know if it worked or not. I tried rebooting and then checking the webview setting in dev options, but it's still not there.
Click to expand...
Click to collapse
Run the following command:
Bash:
adb shell dumpsys webviewupdate
and if it outputs org.bromite.webview is NOT installed then it works.
TheShanMan said:
I'm guessing you assumed I would also then do steps 6 and 7. Is that right?
Click to expand...
Click to collapse
If your phone is old and doesn't receive official updates anymore, there's no need for addon.d, so no.
May I have the contents of the / (root) folder? Is there any partition called oem or odm? If so, what do they contain?

I'm a little confused by you saying it works if it says "NOT installed", but no, it doesn't say anything about bromite. Here's the output:
Current WebView Update Service state
Fallback logic enabled: true
Current WebView package (name, version): (com.google.android.webview, 62.0.3202.84)
Minimum WebView version code: 320208452
Number of relros started: 2
Number of relros finished: 2
WebView package dirty: false
Any WebView package installed: true
Preferred WebView package (name, version): (com.google.android.webview, 62.0.3202.84)
WebView packages:
Valid package com.android.chrome (versionName: 62.0.3202.84, versionCode: 320208452, targetSdkVersion: 27) is NOT installed/enabled for all users
Valid package com.google.android.webview (versionName: 62.0.3202.84, versionCode: 320208400, targetSdkVersion: 27) is installed/enabled for all users
And the contents of / are:
acct
bt_firmware
bugreports
cache
carrier
charger
config
cota
crashdump.d
cwkeys
d
data
default.prop
dev
devlog
dsp
etc
fataldevlog
file_contexts.bin
firmware
fstab.qcom
init
init.environ.rc
init.hosd.cradio.rc
init.hosd.htc_pme.rc
init.hosd.usb.configfs.rc
init.hosd.usb.rc
init.hosd_fusion.usb.rc
init.htc.storage.exfat.rc
init.htc.storage.mocana.rc
init.rc
init.recovery.common.rc
init.recovery.htc_pme.rc
init.usb.configfs.rc
init.usb.rc
init.zygote32.rc
init.zygote64_32.rc
mnt
nonplat_file_contexts
nonplat_hwservice_contexts
nonplat_property_contexts
nonplat_seapp_contexts
nonplat_service_contexts
oem
persist
plat_file_contexts
plat_hwservice_contexts
plat_property_contexts
plat_seapp_contexts
plat_service_contexts
preload
proc
res
root
sbin
sdcard
sdcard2
sepolicy
storage
sys
system
tombstones
ueventd.htc_pme.rc
ueventd.rc
vendor
vndservice_contexts
vzw
vzwqualitylogger
/oem is empty.

TheShanMan said:
I'm a little confused by you saying it works if it says "NOT installed"
Click to expand...
Click to collapse
Yeah, it's a little confusing, but if the overlay was successfully installed it should output NOT installed.
TheShanMan said:
but no, it doesn't say anything about bromite. Here's the output:
Click to expand...
Click to collapse
Then it doesn't work.
TheShanMan said:
/oem is empty.
Click to expand...
Click to collapse
Then try putting the overlay package inside, enable it (even if there is no output, just in case) and reboot the phone.
If it doesn't work, then you are out of luck as far as I know and your only option is to patch framework-res.apk manually.
Edit: clarification

Not only did that not work, but the /oem directory got wiped out after booting up. It must get populated by something during boot. Thank you very much for putting in this much effort to figure out how to make this work in my case. I wish I could've reported victory, but maybe I'll get it figured out via framework-res. I've tried one approach with that unsuccessfully so far (which hung during boot). I'll try more things and hopefully get it figured out! Best of luck with your project and thanks for offering it to people!

TheShanMan said:
Thank you very much for putting in this much effort to figure out how to make this work in my case.
Click to expand...
Click to collapse
Don't sweat it! Thank you for your patience and sorry I couldn't find a proper solution.
TheShanMan said:
I'll try more things and hopefully get it figured out!
Click to expand...
Click to collapse
If you actually DO find a way, it would be awesome if you could report back. Maybe it will help others in the same situation. Good luck!

Hi. Thank you for that step by step process of installing Bromite Webview.
I am a little confused about the 'vendor' part. What does that mean and why is it there? And as a consequence of that, I do not understand steps 6 & 7 beyond adb 'push' or 'shell'.
Any help is massively appreciated!

arovlad said:
This has not been tested on any other version other than Android 12.1. If you have issues please report them here or open an issue on GitHub.
I just upgraded to LineageOS 19 from 18.1 and as usual I want to apply my own modifications on top of it but the NanoDroid script that I previously used doesn't seem to work on 19. I couldn't find an answer neither on r/LineageOS, r/fossdroid or even XDA so I wrote a way to install Bromite SystemWebView in a way that's a lot more elegant and doesn't need Magisk or root.
Prerequisites:
adb
Rooted debugging or a custom recovery
Installation guide:
Enable Rooted debugging by navigating to Settings > Developer options > Rooted debugging.
Connect your phone to your PC and type
Bash:
adb root
Mount the vendor folder:
Bash:
adb shell mount -o rw,remount /vendor
Copy the package downloaded from here to the overlay directory:
Bash:
adb push treble-overlay-bromite-webview.apk /vendor/overlay
Mount the system as read-write:
Bash:
adb shell mount -o rw,remount /
Copy the OTA survival script to the appropriate location:
Bash:
adb push 99-bromite-webview.sh /system/addon.d
Make the script executable:
Bash:
adb shell chmod 755 /system/addon.d/99-bromite-webview.sh
Reboot the device:
Bash:
adb reboot
Download the latest Bromite SystemWebView release and install it as you would a regular app.
Navigate to Settings > Developer options > WebView implementation and select Bromite SystemWebView.
For custom recoveries: skip the first two steps, enable ADB from recovery mode and follow steps 3-10 replacing /vendor/overlay with /mnt/system/vendor/overlay and /system/addon.d with /system/system/addon.d.
For a more in-depth explanation check the GitHub repository.
Click to expand...
Click to collapse
Hi, @arovlad thanks for this workaround. I'm running the exactly same LOS version than you on a OP6. But at step 5 i'm getting the following error : /dev/root is read-only any idea what can i do ? Thx for your help !

amanajosh said:
I am a little confused about the 'vendor' part. What does that mean and why is it there?
Click to expand...
Click to collapse
Starting Android Oreo, the vendor partition is a separate partition containing proprietary manufacturer code not part of AOSP. This separation ensures that the Android system can be updated without recompiling the device-specific software. The vendor partition is typically overlayed over the system partition, making it easy to apply tweaks and modifications without actually touching the system. These modifications are typically named systemless.
Did you install Bromite WebView successfully?
bre75 said:
at step 5 i'm getting the following error : /dev/root is read-only any idea what can i do ?
Click to expand...
Click to collapse
Try the following command instead of step 5 and see if works for you:
Bash:
adb remount

Related

CIFS Manager on CM 7

Here is what I've tried:
1. Settings -> about tablet to get kernel version: 2.6.32.39-cyanogenmod [email protected] #1
2. Go to http://droidbasement.com/db-blog/ and find the kernel for gTab. There are several one, I just picked one with Gingerbread and downloaded
lib-2632.39_gb.tar.gz
Unpack on put cifs.ko under /system/lib/modules
3. Install CIFS Manger
4. Run CIFS Manager, add the share
5. If there is problem mount it in rw mode, use option "rw,noperm" (thanks, rajeevvp)
The share is successfully mounted.
Thanks!
redhonker said:
Here is what I've tried:
1. Settings -> about tablet to get kernel version: 2.6.32.39-cyanogenmod [email protected] #1
2. Go to http://droidbasement.com/db-blog/ and find the kernel for gTab. There are several one, I just picked one with Gingerbread and downloaded
lib-2632.39_gb.tar.gz
Unpack on put cifs.ko under /system/lib/modules
3. Install CIFS Manger
4. Run CIFS Manager, add the share
The share is successfully mounted.
The only issue I have is that it can't seem to mount a share in read-write mode even though it's shared with write permission. Does anyone know how to fix it?
Thanks!
Click to expand...
Click to collapse
After pushing the cifs module to the tablet you need to add an chmod and then you also need a insmod line every time you want to use it (at least after following a reboot).
Go back and read the instructions on droid basement. He has the details of the steps following loading the cifs.ko.
Good luck.
Sent from my ADR6300 using Tapatalk
CIFS manager already loads the module fine. Are you saying in order to mount in rw mode, it needs permission on cifs.ko file?
redhonker said:
CIFS manager already loads the module fine. Are you saying in order to mount in rw mode, it needs permission on cifs.ko file?
Click to expand...
Click to collapse
No, you don't.
CIFS Manager should have an option to do a read-write mount.
Otherwise, you can try changing the mounting back into read-write mode:
Code:
$ su
# /system/xbin/mount -w -o remount /CIFS/PATH
Replace, /CIFS/PATH with the directory you provided to CIFS Manager.
Also, understand my cautions, as mentioned in the other thread, about mixing and matching kernels and kernel modules. I would suggest that you also install the kernel that goes with the module file you downloaded--ie. get the one in the same blog post.
Appreciate your advice on not mixing kernel and modules. I could not tell which exact build CM 7 uses so I had to pick one. When I get more experienced with Android, I may start changing kernels.
Doesn't CIFS uses rw mount by default? If not, what's the option? rw? I've tried that as well.
If I change the system file to mount it by default, I'd have to save the password on the command line, right? Will wireless be ready at that time? And if server or wireless is not ready at the time, I'd need to manually remount with some tool, do I?
Thanks!
redhonker said:
Appreciate your advice on not mixing kernel and modules. I could not tell which exact build CM 7 uses so I had to pick one. When I get more experienced with Android, I may start changing kernels.
Doesn't CIFS uses rw mount by default? If not, what's the option? rw? I've tried that as well.
If I change the system file to mount it by default, I'd have to save the password on the command line, right? Will wireless be ready at that time? And if server or wireless is not ready at the time, I'd need to manually remount with some tool, do I?
Thanks!
Click to expand...
Click to collapse
Cm7 includes pershoots kernel. The gb one.
Sent from my ADR6300 using Tapatalk
not to confuse issue with whatop is having but I wonder if anyone has run into a problem with cifs in which it doesn't include all of the folders from your windows shares.
redhonker said:
Here is what I've tried:
1. Settings -> about tablet to get kernel version: 2.6.32.39-cyanogenmod [email protected] #1
2. Go to http://droidbasement.com/db-blog/ and find the kernel for gTab. There are several one, I just picked one with Gingerbread and downloaded
lib-2632.39_gb.tar.gz
Unpack on put cifs.ko under /system/lib/modules
3. Install CIFS Manger
4. Run CIFS Manager, add the share
The share is successfully mounted.
The only issue I have is that it can't seem to mount a share in read-write mode even though it's shared with write permission. Does anyone know how to fix it?
Thanks!
Click to expand...
Click to collapse
OP,
See modified instructions from your first post. This should get you up and running.
1. Settings -> about tablet to get kernel version: 2.6.32.39-cyanogenmod [email protected] #1
2. Go to http://droidbasement.com/db-blog/ and find the kernel for gTab. There are several one, I just picked one with Gingerbread and downloaded
lib-2632.39_gb.tar.gz
Unpack on put cifs.ko under /system/lib/modules/2.6.32.39-cyanogenmod/
From ADB or terminal emulator (enable SU and do not need the adb part)
adb remount
adb shell chmod 644 /system/lib/modules/2.6.32.39-cyanogenmod/MODULE.ko
adb shell insmod /system/lib/modules/2.6.32.39-cyanogenmod/MODULE.ko
3. Install CIFS Manger
4. Run CIFS Manager, add the share
I wanted to help you with this earlier but been sidetracked. I hope this helps
redhonker said:
Doesn't CIFS uses rw mount by default? If not, what's the option? rw?
Click to expand...
Click to collapse
Yes, by default it should be mounted read-write. If, for some reason, it gets mounted read-only, you can use the remount command I gave earlier to make the mount read-write again.
But, there could be other reasons for you not being able to write to the share directory. Permission and UID/GID mismatches could be one reason. Try adding the "noperm" flag to tell Linux not to check permissions locally ie. do the permission checking only on Windows:
Code:
/system/xbin/mount -t cifs //SERVER-IP-ADDRESS/SHARENAME /some/path -o rw,noperm,domain=DOMAIN,username=USER.NAME,password=PASSWORD
If I change the system file to mount it by default, I'd have to save the password on the command line, right? Will wireless be ready at that time? And if server or wireless is not ready at the time, I'd need to manually remount with some tool, do I?
Click to expand...
Click to collapse
Which system file? If you mean /etc/fstab, then that file does not exist on Android.
CIFS Manager (I haven't used it) should have an option to let you store the password securely. On normal Unix systems, the mount command accepts a "credentials=/some/file.txt" option which can be used in place of the "domain=XXX,username=YYY" options when mounting. Unfortunately, the mount command on the gTablet does not understand that option--I checked: you have to do it the old-fashioned way. You can't even skip the "password=" bit. On Unix, if you skip that, the mount command will prompt you for the password.
The solution, if you don't use CIFS Manager, is to place all the commands--the insmod and the mount--into a shell-script and give it 700 permissions. That way only the owner can see what's inside it and you can run the script after the wireless has come up.
noperm does the trick. Will update first post.
Oozura said:
From ADB or terminal emulator (enable SU and do not need the adb part)
adb remount
adb shell chmod 644 /system/lib/modules/2.6.32.39-cyanogenmod/MODULE.ko
adb shell insmod /system/lib/modules/2.6.32.39-cyanogenmod/MODULE.ko
[/B]
Click to expand...
Click to collapse
Could you explain the exact process for doing this from a terminal emulator. My main hold up is the /system directory being read only, so I can't copy the module (CIFS.KO in this case) to that directory.
h3llphyre said:
Could you explain the exact process for doing this from a terminal emulator. My main hold up is the /system directory being read only, so I can't copy the module (CIFS.KO in this case) to that directory.
Click to expand...
Click to collapse
You don't need to put cifs.ko into /system. If CIFS Manager asks for the path to a cifs.ko file, then you can put the file anywhere you want.
I have a new problem. There seems to be a limit on the file size. I have a 3 GB file shows up as 28 KB. Does anyone have success with large file? Thanks
I tried your instruction... there are two problems...(my rom is also cm7.0.3)
1. I can't put the cifs.ko into /system/lib/modules~ it seems that it is forbid to copy some files into system folder...
2. so I tried to put the cifs.ko in the /mnt/cifs.ko, and made the related setting in cifs manager(path to cifs.ko), then i mounted, but it showed that:"no route to host"
but i am sure that my ip and password is correct... so is there anyone know how to solve this problem?
I used Root Explorer. I am sure there are other means to put it under /system. I am not sure if that's necessary
savage0 said:
I tried your instruction... there are two problems...(my rom is also cm7.0.3)
1. I can't put the cifs.ko into /system/lib/modules~ it seems that it is forbid to copy some files into system folder...
2. so I tried to put the cifs.ko in the /mnt/cifs.ko, and made the related setting in cifs manager(path to cifs.ko), then i mounted, but it showed that:"no route to host"
but i am sure that my ip and password is correct... so is there anyone know how to solve this problem?
Click to expand...
Click to collapse
I literally just went through this today. Download Terminal Emulator (free on the market).
PS: Don't type the '#' sign below.
#su
#/system/xbin/mount -w -o remount /system
#cp /SDCARD/cifs.ko /system/lib/modules/2.6.32.41-cyanogenmod/
#/system/xbin/mount -r -o remount /system
Then, just add the path /system/lib/modules/2.6.32.41-cyanogenmod/ into CIFS Manager. Should be all set.
redhonker said:
I have a new problem. There seems to be a limit on the file size. I have a 3 GB file shows up as 28 KB. Does anyone have success with large file? Thanks
Click to expand...
Click to collapse
File size limits depend on the underlying filesystem.
I tried the following command on an external NTFS formatted USB HDD connected to a Linux desktop mounted on the gTablet at /mnt/usbdisk via CIFS, and had no problems.
Code:
# ls -l /mnt/usbdisk/rvp/bak/hda3.img
-rw-rw-rw- 1 root root 8011422720 Apr 17 2010 /mnt/usbdisk/rvp/bak/hda3.img
# dd if=/mnt/usbdisk/rvp/bak/hda3.img of=/dev/null bs=1M skip=7500
140+1 records in
140+1 records out
147102720 bytes (140.3MB) copied, 150.135761 seconds, 956.8KB/s
The command skips the initial 7.5 GB of a 8,011,422,720 byte file and reads the rest (~140 MB).
rob_z11 said:
not to confuse issue with whatop is having but I wonder if anyone has run into a problem with cifs in which it doesn't include all of the folders from your windows shares.
Click to expand...
Click to collapse
I had the same issue, but I found the guide on abettergeek which helped me fix it. Turns out the problem is that the mount point created by Cifs Manager doesn't have execute permissions.
I don't have enough seniority to post the link, but it's a recent post on abettergeek.com. If someone with enough seniority wants to paste it, some others may find it extremely helpful.
archmcd said:
I had the same issue, but I found the guide on abettergeek which helped me fix it. Turns out the problem is that the mount point created by Cifs Manager doesn't have execute permissions.
I don't have enough seniority to post the link, but it's a recent post on abettergeek.com. If someone with enough seniority wants to paste it, some others may find it extremely helpful.
Click to expand...
Click to collapse
The link I believe you are refering to is here: http://blog.abettergeek.com/hardwar...n-cyanogenmod-7-0-3-on-the-viewsonic-gtablet/
I have the same issue. I haven't tried this fix yet, but I will give it a go.
ByteWrencher
Pls, where I can put "rw,noperm" in cifs manager? I tried in module path as:
/system/lib/modules/slow-work.ko:/system/lib/modules/cifs.ko rw,noperm
And:
/system/lib/modules/slow-work.ko:/system/lib/modules/cifs.ko:rw,noperm
But still don't working as rw.
Ty.

[GUIDE/MOD] DNSCrypt for AArch64 (ZIP) (2016/03/17)

NOT SYSTEMLESS!
This writes to system, so systemless master race stay away.
Someone wanna make a Magisk version?
Instructions:
0. Download zip below and place inside internal storage.
1. Boot to TWRP.
2. Mount>System
3. Flash zip
4. Boot to Android and open a terminal emulator
5. Run dnscrypt enable. You probably have to do this every reboot.
Changing resolver:
Edit /system/etc/init.d/99dnscrypt. There's a line RESOLVER_NAME, change it to a suitable one from here under Name. I suggest you ping every server geographically nearby and go with the lowest ping.
Changing DNS server:
On Nexus 5X at least, use a Terminal Emulator and run
Code:
setprop net.dns1 127.0.0.1:53
Self-compile guide:
Requirements:
Linux computer (x86_64)
Android NDK (r12b is the newest so far, get the 64-bit one)
libsodium
dnscrypt-proxy
Here's how I did it:
1. Extract the NDK (unzip android-ndk-rXXb.zip )
2. Run
Code:
export ANDROID_NDK_HOME=<NDK Location>
3. Extract libsodium and dnscrypt-proxy.
4. Enter the folder of libsodium/dist-build, then edit android-build.sh such that NDK_PLATFORM:-android-16 becomes NDK_PLATFORM:-android-24. Then modify android-armv8-a.sh and add
Code:
-mtune=cortex-a57.cortex-a53 -mcpu=cortex-a57.cortex-a53
to the end of CFLAGS.
5. Return to libsodium root folder (cd ..) and do ./autogen.sh then ./dist-build/android-armv8-a.sh. When the script finishes it will tell you where the output is.
6. (Optional) Run android-toolchain-armv8-a/aarch64-linux-android/bin/strip on the output .so (typically in libsodium-android-armv8-a/lib/libsodium.so)
7. Now we do
Code:
export SODIUM_ANDROID_PREFIX=<libsodium output>
8. Enter the folder of dnscrypt, do the same modifications to dnscrypt's dist-builds. Again, do ./autogen.sh and ./dist-build/android-armv8-a.sh.
9. Now you have a fresh compilation of AArch64 dnscrypt-proxy!
It's usually dnscrypt-proxy-android-armv8-a.zip
10. Finally, we need to edit the zip file and rename the /system/lib folder to lib64, and change references in updater-script and /system/addon.d/75-dnscrypt.sh.
11. (Optional) Add --ephemeral-keys to 99dnscrypt for extra security.
Credits:
qwerty12 for the basic instructions
Changelog:
02/19: Updated libsodium (1.0.8->master) and dnscrypt-proxy(01/27 master->master)
03/17: Pulled freshest code from masters, compiled with NDK r11b and platform android-23
09/26: Latest stable branch of libsodium and master of dnscrypt. Compilation target now android-24. Compiled with NDK r12b
Changes to both dnscrypt-proxy and libsodium:
dist-build/android-build.sh:
Code:
NDK_PLATFORM:-android-16 to NDK_PLATFORM:-android-24
dist-build/android-arm-v8-a.sh:
Code:
Appended:
-mtune=cortex-a57.cortex-a53 -mcpu=cortex-a57.cortex-a53
to end of CFLAGS
Why not just release the compiled binaries ? would safe others with tinkering compiling it
Flashable zip
DragonHunt3r said:
Why not just release the compiled binaries ? would safe others with tinkering compiling it
Click to expand...
Click to collapse
Uploaded. I just thought most people would be more comfortable compiling their own code rather than trust a stranger. I still don't know how to fix the updater script though, it's the default one for now.
aschere said:
Uploaded. I just thought most people would be more comfortable compiling their own code rather than trust a stranger. I still don't know how to fix the updater script though, it's the default one for now.
Click to expand...
Click to collapse
That's true, but at the other side we trust random flashable zips for roms, mods etc from XDA
Thanks for the upload will take a look
Edit: well it works but in DNSManager for example it shows greyed out "Enable DnsCrypt"
dnsleaktest.com shows dnscrypt works though
DragonHunt3r said:
That's true, but at the other side we trust random flashable zips for roms, mods etc from XDA
Thanks for the upload will take a look
Edit: well it works but in DNSManager for example it shows greyed out "Enable DnsCrypt"
dnsleaktest.com shows dnscrypt works though
Click to expand...
Click to collapse
Shows up OK in my device.
So can I just flash the zip and use dns manager? nothing else?
---------- Post added at 03:25 AM ---------- Previous post was at 03:17 AM ----------
Will this work with a non 64 bit snapdragon 805
gangrenius said:
So can I just flash the zip and use dns manager? nothing else?
---------- Post added at 03:25 AM ---------- Previous post was at 03:17 AM ----------
Will this work with a non 64 bit snapdragon 805
Click to expand...
Click to collapse
This works only on 64-bit devices. For 32-bit devices, a download is provided here.
Yes, this is a flashable zip. However, DNS needs to be changed manually such as through DNS Manager because iptables doesn't entirely work.
Any major changes with 4/6? Thanks for updating this BTW.
th3g1z said:
Any major changes with 4/6? Thanks for updating this BTW.
Click to expand...
Click to collapse
It's all commits from 03/17 to 04/06.
Installed the zip successfully, when in terminal emulator, its not working, pls help!:crying:
Using rooted Lenovo A7000
Here's the full text directly copied from terminal emulator:
[email protected]:/ $ dnscrypt enable
Enabling dnscrypt-proxy...
iptables v1.4.20: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
iptables v1.4.20: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
[INFO] - [cs-uswest] does not support DNS Security Extensions
[INFO] + Namecoin domains can be resolved
[INFO] + Provider supposedly doesn't keep logs
[NOTICE] Starting dnscrypt-proxy 1.6.1
[INFO] Generating a new session key pair
[INFO] Done
[INFO] Server certificate #808464433 received
[INFO] This certificate is valid
[INFO] Chosen certificate #808464433 is valid from [2015-11-05] to [2016-11-04]
[INFO] Server key fingerprint is 881A:AED0:0427:BAF0:47D6:BDFA:6161A38:F019:571C:9BD2:A083:4A5F:C938:7E5D:8434
iptables v1.4.20: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
Done
[email protected]:/ $
kuchienkz said:
Installed the zip successfully, when in terminal emulator, its not working, pls help!:crying:
Using rooted Lenovo A7000
Here's the full text directly copied from terminal emulator:
[email protected]:/ $ dnscrypt enable
Enabling dnscrypt-proxy...
iptables v1.4.20: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
iptables v1.4.20: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
iptables v1.4.20: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
Done
[email protected]:/ $
Click to expand...
Click to collapse
Did you read the error you got? You have to be root. Try running 'su' before 'dnscrypt enable'
aschere said:
Did you read the error you got? You have to be root. Try running 'su' before 'dnscrypt enable'
Click to expand...
Click to collapse
Lol, i would not post my problem here if that could solve my problem :v
Already tried that several times. Still gives the same error.
kuchienkz said:
Lol, i would not post my problem here if that could solve my problem :v
Already tried that several times. Still gives the same error.
Click to expand...
Click to collapse
Can you post what version of Android, what phone?
aschere said:
Can you post what version of Android, what phone?
Click to expand...
Click to collapse
Android Version: 5.0.2
Lenovo A7000 : Phone Spec
kuchienkz said:
Android Version: 5.0.2
Lenovo A7000 : Phone Spec
Click to expand...
Click to collapse
Hmmm... I can't really think of anything other than the root: are you sure you rooted it? When you type su, do you switch to the root user?
aschere said:
Hmmm... I can't really think of anything other than the root: are you sure you rooted it? When you type su, do you switch to the root user?
Click to expand...
Click to collapse
Ah nevermind, i just reinstalled my phone with stock ROM, then rooted it. Now it works. :good:
If you curious about last rom, it is MIUI 7
Thank you so much for your help :victory:
Btw now that i understand how to run it. But as u said that i have to run it on every boot. Is there a way to run it automatically? Actually, im quite new to Terminal Emulator
kuchienkz said:
Ah nevermind, i just reinstalled my phone with stock ROM, then rooted it. Now it works. :good:
If you curious about last rom, it is MIUI 7
Thank you so much for your help :victory:
Btw now that i understand how to run it. But as u said that i have to run it on every boot. Is there a way to run it automatically? Actually, im quite new to Terminal Emulator
Click to expand...
Click to collapse
Good to hear that!
For automatic execution, you can create a script in /system/su.d or /system/addon.d I guess.
Ah actually, it should be in /system/etc/init.d
aschere said:
Ah actually, it should be in /system/etc/init.d
Click to expand...
Click to collapse
And.... how to make that script?
Im seriously beginner here
I dont have any idea what kind of script it is and what language it uses.
Maybe you can give me link to a site where i could learn to make one
kuchienkz said:
And.... how to make that script?
Im seriously beginner here
I dont have any idea what kind of script it is and what language it uses.
Maybe you can give me link to a site where i could learn to make one
Click to expand...
Click to collapse
Actually, the script should already be in there. See this.

Questions for disable verity

Hello,
I have rooted my pixel 3 by using Magisk,
my version is still Android pie,
it has successfully rooted but then when I type "adb root" it returns adbd cannot run as root in production builds,
I found out it might because I need to disable the verity, but when I type adb disable-verity it shows "verity cannot be disabled/enabled - USER build",
I have tried to follow the steps from https://android.stackexchange.com/q...dm-verity-on-android-with-user-build-type-rom but I don't quite understand how to do it,
I was wondering if anyone have more specific steps that will be able to disable the verity.
Thanks!
Skylar514 said:
Hello,
I have rooted my pixel 3 by using Magisk,
my version is still Android pie,
it has successfully rooted but then when I type "adb root" it returns adbd cannot run as root in production builds,
I found out it might because I need to disable the verity, but when I type adb disable-verity it shows "verity cannot be disabled/enabled - USER build",
I have tried to follow the steps from https://android.stackexchange.com/q...dm-verity-on-android-with-user-build-type-rom but I don't quite understand how to do it,
I was wondering if anyone have more specific steps that will be able to disable the verity.
Thanks!
Click to expand...
Click to collapse
In magisk advanced settings untick preserve adb verity and reinstall.
wangdaning said:
In magisk advanced settings untick preserve adb verity and reinstall.
Click to expand...
Click to collapse
Hello,
Thank you for your respond.
I have done that and it still doesnt let me disable the verity.
Is there any other way I can disable the verity?
Thanks!
Skylar514 said:
Hello,
Thank you for your respond.
I have done that and it still doesnt let me disable the verity.
Is there any other way I can disable the verity?
Thanks!
Click to expand...
Click to collapse
Use proton kernel!
pheco said:
Use proton kernel!
Click to expand...
Click to collapse
Hello,
I just installed the proton kernel,
and I checked my kernel version it is "Linux version 4.9.191-Proton-v19-g225054cc ([email protected]) (GCC 9.1.0) #20 SMP PREEMPT Sun Sep 8 21:50:57 PDT 2019",
but when I tried adb dm-verity it still shows verity cannot be disabled/enabled - USER build.
I was wondering if you have any idea?
Thank you.
I think you might have to do it to both slots. If it is still enabled on one of them I think it still checks.
Hello,
I upgrade my phone to android 10, and I can't flash the proton kernel,
I have done it to both slots and its still unable to disable.
Any idea?
Thank you!
Skylar514 said:
Hello,
I upgrade my phone to android 10, and I can't flash the proton kernel,
I have done it to both slots and its still unable to disable.
Any idea?
Thank you!
Click to expand...
Click to collapse
As far as I know you cannot do it in 10. I have never updated and tried, but that is what I have heard. There is no way to modify system except systemlessly with magisk modules. What exactly are you trying to do, might help get more suggestions if you tell us.
wangdaning said:
As far as I know you cannot do it in 10. I have never updated and tried, but that is what I have heard. There is no way to modify system except systemlessly with magisk modules. What exactly are you trying to do, might help get more suggestions if you tell us.
Click to expand...
Click to collapse
I am trying to run python script on the phone, so I have found this website https://medium.com/swlh/python-on-android-root-4aa56f22070a
and I was trying to follow the step to install python on the phone, but I am stuck at the adb remount command step.
It shows that I need to type adb root, but when I typed adb root it shows "adbd cannot run as root in production builds",
and I have try mount -o rw,remount /system, it gave me error "mount: '/system' not in /proc/mounts".
I checked mount and for some reason it shows system_root instead of system for "/sbin/.magisk/block/system_root on /sbin/.magisk/mirror/system_root type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)", so I did some research and found out that I need to disable the verity, but when I tried to disable it it gave me the error which is "verity cannot be disabled/enabled - USER build".
Skylar514 said:
I am trying to run python script on the phone, so I have found this website https://medium.com/swlh/python-on-android-root-4aa56f22070a
and I was trying to follow the step to install python on the phone, but I am stuck at the adb remount command step.
It shows that I need to type adb root, but when I typed adb root it shows "adbd cannot run as root in production builds",
and I have try mount -o rw,remount /system, it gave me error "mount: '/system' not in /proc/mounts".
I checked mount and for some reason it shows system_root instead of system for "/sbin/.magisk/block/system_root on /sbin/.magisk/mirror/system_root type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)", so I did some research and found out that I need to disable the verity, but when I tried to disable it it gave me the error which is "verity cannot be disabled/enabled - USER build".
Click to expand...
Click to collapse
System partition is under /system_root on Pie. I wonder if you could create a magisk module to install the app systemlessly.
wangdaning said:
System partition is under /system_root on Pie. I wonder if you could create a magisk module to install the app systemlessly.
Click to expand...
Click to collapse
Hi,
So now I am trying to unpack the boot.img file that I downloaded from google firmware website in order to try the method that provided by https://android.stackexchange.com/q...dm-verity-on-android-with-user-build-type-rom.
But I was wondering instead of editing boot.img, should I just edit the magisk_patched.img?
Thanks!
Skylar514 said:
Hi,
So now I am trying to unpack the boot.img file that I downloaded from google firmware website in order to try the method that provided by https://android.stackexchange.com/q...dm-verity-on-android-with-user-build-type-rom.
But I was wondering instead of editing boot.img, should I just edit the magisk_patched.img?
Thanks!
Click to expand...
Click to collapse
You are going to need root so better to modify the magisk boot image.
wangdaning said:
You are going to need root so better to modify the magisk boot image.
Click to expand...
Click to collapse
Hello,
Thank you for your respond!
Do I need to modify boot.img as well?
Or just the magisk_patched.img?
Thank you!
I think there is a way to disable verity before installing the magisk boot img, but you would have to look at the magisk github information.
Sounds good!
Thanks for your advice!
Beside that I was wondering if you know that is there anyway we can access the battery data through abd command?
I know that we can gather cpu frequency info, but I am not sure if we can get the battery data as well.
Thanks in advance!
Maybe check this thread about battery
https://forum.xda-developers.com/pixel-3-xl/themes/looking-mod-to-make-battery-indicator-t3913080

"No such file or directory" if tried run binary file in TWRP

I need to run a binary file, dalvikvm which located in /system/bin from TWRP terminal, but no matter what, it says, "No such file or directory found", and then I found that this is link file located another directory, I cd'd there and tried, but still the same result
I can be able to run the same file in Termux without any issues
Can anybody please help me on this?
Thanks
Hi, I think you need to mount the system partition before being able to access it. It's not mounted by default on TWRP, but when the phone is on it is (otherwise Android wouldn't work)
If you need help on how to mount partitions on TWRP, ring me (or google it, it's actually pretty simple)
Raiz said:
Hi, I think you need to mount the system partition before being able to access it. It's not mounted by default on TWRP, but when the phone is on it is (otherwise Android wouldn't work)
If you need help on how to mount partitions on TWRP, ring me (or google it, it's actually pretty simple)
Click to expand...
Click to collapse
Thanks for replying, it wasn't mounted at first, so I had mounted, still it didn't work, while some of the files in bin do work, some don't.
Then I copied the file to /sdcard and /tmp, and tried execute from these folders, still
Well, if when you're free, can you confirm if it's running on yours?
File: /system/bin/dalvikvm
Thanks once again
mizzunet said:
Thanks for replying, it wasn't mounted at first, so I had mounted, still it didn't work,
...
Thanks once again
Click to expand...
Click to collapse
I didn't found it inside, but it may be because I'm not rooted.
While searching around I've found this :
No such file or directory while running dalvikvm
I built AOSP Android and push the dalvik virtual machine in my device just to see if my built dalvik vm runs properly. I pushed it my device /opt directory but when I run dalvikvm, I get the error...
stackoverflow.com
It might get you out of trouble
Raiz said:
I didn't found it inside, but it may be because I'm not rooted.
While searching around I've found this :
No such file or directory while running dalvikvm
I built AOSP Android and push the dalvik virtual machine in my device just to see if my built dalvik vm runs properly. I pushed it my device /opt directory but when I run dalvikvm, I get the error...
stackoverflow.com
It might get you out of trouble
Click to expand...
Click to collapse
I looked into it.
I had no opt folder in root directory. So I made one, and moved dalvikvm to there and tried execute this time, it said permission denied, so I gave it chmod 755. But after that, it says "there no such file or directory".
Well, do you telegram account, so I could contact you there.
Thanks
Raiz said:
I didn't found it inside, but it may be because I'm not rooted.
While searching around I've found this :
No such file or directory while running dalvikvm
I built AOSP Android and push the dalvik virtual machine in my device just to see if my built dalvik vm runs properly. I pushed it my device /opt directory but when I run dalvikvm, I get the error...
stackoverflow.com
It might get you out of trouble
Click to expand...
Click to collapse
And even "file" binary, it says, there no file.
mizzunet said:
I looked into it.
I had no opt folder in root directory. So I made one, and moved dalvikvm to there and tried execute this time, it said permission denied, so I gave it chmod 755. But after that, it says "there no such file or directory".
Well, do you telegram account, so I could contact you there.
Thanks
Click to expand...
Click to collapse
This is really curious, tbh I'm not an expert around that subject, idk what's wrong with this binary...
Hopefully someone who knows more may help you with that. Have a nice day
This is because the binary you are trying to execute was compiled to run in the Android context, but you're trying to execute it in the TWRP one. Each binary has a path to a linker used during execution. The problem is that it refers to a linker that doesn't exist in TWRP.
Suppose we want to execte a binary file and obviously we can't:
Bash:
x00h:/ # /system/bin/awk
/sbin/sh: /system/bin/awk: No such file or directory
Let's take a look to its linker:
Bash:
x00h:/ # strings /system/bin/awk | head -n 1
/system/bin/linker64
Then, you will actually discover that it's sym linked to a linker that is available only when Android is running:
Bash:
x00h:/ # ls -ald /system/bin/linker64
lrwxr-xr-x 1 root shell 38 2009-01-01 00:00 /system/bin/linker64 -> /apex/com.android.runtime/bin/linker64
Since TWRP comes with its linker in /sbin/linker64, we can sym link it to /system/bin/linker64.
So, the hack:
Bash:
x00h:/ # mkdir -p /apex/com.android.runtime/bin/
x00h:/ # ln -s /sbin/linker /apex/com.android.runtime/bin/linker
x00h:/ # ln -s /sbin/linker64 /apex/com.android.runtime/bin/linker64
Retry, and it works:
Bash:
x00h:/ # /system/bin/awk
usage: /system/bin/awk [-F fs] [-v var=value] [-f progfile | 'prog'] [file ...]
Pray to God the TWRP's linker will be compatible and do the job (most binaries works fine), but sometimes you may get CANNOT LINK EXECUTABLE.

Question How to do run root as Pixel 6A?

adb root
I have already tried the following command, but it says:
adbd cannot run as root in production builds
xracerx123 said:
adb root
I have already tried the following command, but it says:
adbd cannot run as root in production builds
Click to expand...
Click to collapse
Uh.. What are you trying to do?
Are you trying to emulate a Pixel 6a on your computer, or do you want to have root privileges on your device?
I want to have write permission on /system/bin and /system/xbin, this is for the purpose of me importing nano into the devices. My main goal is to have a bashrc alias and and make it easy for me to edit files in the system.
xracerx123 said:
I want to have write permission on /system/bin and /system/xbin, this is for the purpose of me importing nano into the devices. My main goal is to have a bashrc alias and and make it easy for me to edit files in the system.
Click to expand...
Click to collapse
You'll have to look into rooting then. I suggest you use Magisk. There are many guides on xda (specifically for this device too).
Even magisk won't overcome that error, because at the end of the day, it is a production build.
But that doesn't mean you can't use root! You just can't call "adb root".
Code:
adb shell
$ su
# <-- do stuff as root
# exit
$
xracerx123 said:
I want to have write permission on /system/bin and /system/xbin, this is for the purpose of me importing nano into the devices. My main goal is to have a bashrc alias and and make it easy for me to edit files in the system.
Click to expand...
Click to collapse
Just to be clear, even if you have root, you can't easily write to the system partition. The system partition is mounted as read-only and to get around that you'd need several steps like a modified super partition, and potentially have verity/verification disabled.
Your best bet you be to use Magisk, and either use the Magisk mirror partitions to add nano, or use the Magisk nano module (https://github.com/Magisk-Modules-Repo/nano-ndk)
96carboard said:
Even magisk won't overcome that error, because at the end of the day, it is a production build.
But that doesn't mean you can't use root! You just can't call "adb root".
Code:
adb shell
$ su
# <-- do stuff as root
# exit
$
Click to expand...
Click to collapse
You can use Termux, or any other terminal emulator, type 'su', allow superuser privileges, and do stuff as root.
craigacgomez said:
Just to be clear, even if you have root, you can't easily write to the system partition. The system partition is mounted as read-only and to get around that you'd need several steps like a modified super partition, and potentially have verity/verification disabled.
Your best bet you be to use Magisk, and either use the Magisk mirror partitions to add nano, or use the Magisk nano module (https://github.com/Magisk-Modules-Repo/nano-ndk)
Click to expand...
Click to collapse
Btw, how do I install nano-ndk? There is no release on the GitHub page and when I try to download the .zip file and install, it say fail.
[ Error writing /etc/mkshrc: Read-only file system ]
How do I go about editing this when it is a read only file system
Ok I have successfully added nano, now how do I edit the following file to add alias
Lada333 said:
You can use Termux, or any other terminal emulator, type 'su', allow superuser privileges, and do stuff as root.
Click to expand...
Click to collapse
That's what I said in the message you quoted. There is no need to repeat it.
96carboard said:
That's what I said in the message you quoted. There is no need to repeat it.
Click to expand...
Click to collapse
You never really mentioned where you suggest them use that bit of code you provided, nor have you suggested they use a terminal emulator (where they can obtain root privileges), but alright.
Lada333 said:
You never really mentioned where you suggest them use that bit of code you provided, nor have you suggested they use a terminal emulator (where they can obtain root privileges), but alright.
Click to expand...
Click to collapse
Terminal emulator application is irrelevant. OP was asking about ADB specifically.
hope you are aware that if you modify /system you can't ota update anymore
see this https://topjohnwu.github.io/Magisk/ota.html
96carboard said:
Even magisk won't overcome that error, because at the end of the day, it is a production build.
But that doesn't mean you can't use root! You just can't call "adb root".
Click to expand...
Click to collapse
You CAN...but this can only be done in engineering and debug builds.
adb root restarts adbd with root permissions.
There is a way around this; use an elevated shell to write ro.debuggable=1 to /system/build.prop, /system/default.prop, or /data/local.prop
If you want adb shell to automatically start with root, add ro.secure=0

Categories

Resources