[TIP] AdAway cannot write hosts file - Stock, rooted - Moto G4 Plus Guides, News, & Discussion

This is for people that like to use the stock firmware (I'm one of them) and you are rooted with ElementalX. One of my main reasons to root the phone is to use AdAway (or similar) to get rid of annoying and useless ads.
Well, the hosts file is write protected by the stock Android and cannot be overwrite by AdAway, even if you give root access. AdAway suggests a work-around for this and this is how you apply it.
1. First run AdAway - it will fail writing the system hosts file, but the new hosts file is downloaded on the phone.
Now change to fastboot mode and then boot TWRP (there is no need for TWRP to be flashed with stock).
I usually do it from a command window opened in the TWRP folder (Shift-RightClick), like this:
Code:
adb reboot-bootloader
Now you are in fastbootmode.
Code:
fastboot boot twrp-3.1.0-athene_shreps.img
Of course, replace the TWRP name with "twrp-3.0.2-r4-athene.img" if that's is what you have.
In TWRP screen now:
1. Select MOUNT and check the System partition. Go back.
2. Select ADVANCED>TERMINAL
You have a # prompt. If not, type SU.
3. Type the following two lines in that terminal:
Code:
mv /system/etc/hosts /system/etc/hosts.bak
This renames the existing hosts file to hosts.bak . Not really needed... but better safer than sorry.
Code:
[COLOR="Blue"]ln -s /data/hosts /system/etc/hosts[/COLOR]
This creates a symbolic link to a location that AdAway can write.
Reboot and enjoy.

Simply copy that hosts file via any root Explorer
Sent from my Moto G4 Plus using Tapatalk

Hari Haran said:
Simply copy that hosts file via any root Explorer
Sent from my Moto G4 Plus using Tapatalk
Click to expand...
Click to collapse
This thing won't directly happen, imo:
SoNic67 said:
Code:
ln -s /data/hosts /system/etc/hosts
This creates a symbolic link to a location that AdAway can write.
Reboot and enjoy.
Click to expand...
Click to collapse

Hari Haran said:
Simply copy that hosts file via any root Explorer
Click to expand...
Click to collapse
Yeah, but you have to do it manually every time you update the hosts (AdAway update). Annoying IMO.

Thanks
Wow it worked great after a reboot. Is it like a hosts shortcut in etc folder to hosts file in data folder?

This needs to be re-done after the 93.14-4 security update.

I am running Stock, ElementalX, rooted with SuperSU.
I installed AdAway 3.2, checked systemless mode in the settings and that's it.

I am still at version 3.1.2. Thanks for the heads up.

Related

adfree android

now that we have an easy way to push update.zip files I was wondering if there was any way to push the host file that adfree android downloads to the sdcard. I know that it doesn't have write access to the system partition when booted but in recovery we do right?
So it should be as simple as creating an update.zip that overwrites the old host right?
I'm going to try to get this working
EDIT: Here's how to get this working
1. Search for Adfree Android on the market
2. Install and run
3. allow it to download and install new hosts file, it will copy it to your sdcard and try to replace /system/etc/hosts but fail (it should reboot the phone shortly)
4. Power off the phone and hold Volume Down and power.
5. Use volume down to select recovery
6. In clockwork recovery volume down to "partitions menu" and hit the track pad to select
7. Select "mount /system" and "mount /sdcard" "mount /data"
8. Plug in your usb cord and open a command line on your pc
9. enter adb shell and type the following commands
cp /sdcard/hosts /data/data/hosts
rm /system/etc/hosts
ln -s /data/data/hosts /system/etc/hosts
10. Reboot your phone and enjoy adfree android.
Thanks to all for help in getting this running.
Just adb push your modified host file to /system/etc/hosts. No need for update.zip
ive already done this doesnt work still have tons of adds
word, I figured it out
junjlo said:
ive already done this doesnt work still have tons of adds
Click to expand...
Click to collapse
what I did was install adfree android, wait for it download and error (the phone will reboot itself) put it into recovery and run the following command from adb shell
cp /sdcard/hosts /system/etc
All my ads are gone
You mind sharing the host file? I'd like to do the same. Now that I can connect as root with 'adb shell' then 'su' after the new Unrevoked^2 root. I'd like to start tweaking with things.
supagene said:
You mind sharing the host file? I'd like to do the same. Now that I can connect as root with 'adb shell' then 'su' after the new Unrevoked^2 root. I'd like to start tweaking with things.
Click to expand...
Click to collapse
just download and install adfree android, it copies the host file to your sdcard.
n0-0ne said:
what I did was install adfree android, wait for it download and error (the phone will reboot itself) put it into recovery and run the following command from adb shell
cp /sdcard/hosts /system/etc
All my ads are gone
Click to expand...
Click to collapse
i may have an older hosts file than but i just used adb push hosts /system/ect/hosts
tryed cp but get a box with busybox info
n0-0ne said:
just download and install adfree android, it copies the host file to your sdcard.
Click to expand...
Click to collapse
I intalled the app and when I hit download and intall I get java/io.FileNotFoundException:/sdcard/hosts
My guess is that it's not downloading.
Tried it on both WiFi and 3G
supagene said:
I intalled the app and when I hit download and intall I get java/io.FileNotFoundException:/sdcard/hosts
My guess is that it's not downloading.
Tried it on both WiFi and 3G
Click to expand...
Click to collapse
ok well here's what was downloaded to my card
https://www.yousendit.com/transfer.php?action=batch_download&batch_id=K0JRUGhYT2JQb0t4dnc9PQ
Thats good for 100 downloads.
Found this. forum.xda-developers.com/showthread.php?t=664532 do you guys know if the zip file with hosts good enough since I can't seem to get the AdFree app to work correctly? Of is there an apk somewhere for this app and I shouldn't have gotten the one in the app store?
host installed still doesnt block ever ad using tikl and fring to test
supagene said:
Found this. forum.xda-developers.com/showthread.php?t=664532 do you guys know if the zip file with hosts good enough since I can't seem to get the AdFree app to work correctly? Of is there an apk somewhere for this app and I shouldn't have gotten the one in the app store?
Click to expand...
Click to collapse
I used the one from the market, it does error but it should copy the hosts file to your SD card (and reboot your phone shortly thereafter).
What now?
Great...
cat /sdcard/hosts > /system/etc/hosts
write: No space left on device
junjlo said:
host installed still doesnt block ever ad using tikl and fring to test
Click to expand...
Click to collapse
I've tested both apps and no ads in either.
The one thing I did different that I didn't post was in recovery under partitions I mounted both system and sdcard. Try that and copy the file over.
Thanks!!
So I downloaded the hosts file, booted in recovery, mounted both /system and /sdcard and then 'adb shell' and 'su' and then 'cd /system/etc' and then 'cat /sdcard/hosts > hosts' and it seemed to have worked.
I go to fring and it displays 'Web page not available', not what I'd like to see but it's better than those retarded ads that I keep clicking on by accident.
can someone post step by step how to get adfree working I installed the one from the market and let it error and reboot then i entered into clockworkmod recovery now what? do i need to mount system and sd how do i enter into adb shell and change host file. thanks in advance for any help.
supagene said:
So I downloaded the hosts file, booted in recovery, mounted both /system and /sdcard and then 'adb shell' and 'su' and then 'cd /system/etc' and then 'cat /sdcard/hosts > hosts' and it seemed to have worked.
I go to fring and it displays 'Web page not available', not what I'd like to see but it's better than those retarded ads that I keep clicking on by accident.
Click to expand...
Click to collapse
Glad it worked out, not sure why your getting page not available, I just get a blank box at the top of my contacts list, other apps show the same as well, a blank box where the ad used to be.
j1000 said:
can someone post step by step how to get adfree working I installed the one from the market and let it error and reboot then i entered into clockworkmod recovery now what? do i need to mount system and sd how do i enter into adb shell and change host file. thanks in advance for any help.
Click to expand...
Click to collapse
Edited OP.
thanks for the quick response everything is good until step 8. I know i sound stupid but i learning fast you say enter adb shell. the way i think you do this is type
1. cd\
2. cd sdk
3. cd tools
4. adb shell
when i do this i get error device not found
can you help from there. thanks

My adfree scripts for visionary

I've finally created working adfree for Desire HD.
*** Probably there is something in ROM which overwrites hosts to default every one hour. I'm trying to track this. ***
Please comment.
Instructions:
1. Install visionary
2. Set visionary to run on boot
3. Extract files to /data/local/
Use Root Explorer or something like this, mount system partition as r/w and copy files from zip. You should have two files: /data/local/hosts and /data/local/visionary.sh
4. Set permissions of visionary.sh to executable
4. Restart phone
Ver. 0.9
Using my huge hosts file which is compilation from three sources plus my manual additions.
Is it for always have a root acces ? (Android logged)
NeoKiro said:
Is it for always have a root acces ? (Android logged)
Click to expand...
Click to collapse
It is for hiding ads.
Code:
4. Set permissions of visionary.sh to executable
How to set permissions executable?
Pacjonek said:
Code:
4. Set permissions of visionary.sh to executable
How to set permissions executable?
Click to expand...
Click to collapse
In Root Explorer hold your finger on file and choose option 'permissions'.
Probably You can try skip this step.
than33 said:
In Root Explorer hold your finger on file and choose option 'permissions'.
Probably You can try skip this step.
Click to expand...
Click to collapse
When I do that I don't get "permissions"... Trying to restart now without it...
E D I T: Just rebooted and ads are now gone in some apps Will see what will happen in one hour
ANOTHER EDIT: Thank you for this. Hope you can fix the one hour problem. Still need to wait for an hour to be over before I can check it.
/CK
So everything works? If so, thank you
Do you recommend we uninstall adfree app when using this?
Uninstalled but still not blocking ads in apps for me, e.g. in alchemy
The ads came back a few mins later... So guess you didn't quite break the code yet
/CK
Does this method not work with the temp root?
1. Search for Adfree Android on the market
2. Install and run
3. allow it to download and install new hosts file, it will copy it to your sdcard and try to replace /system/etc/hosts but fail (it should reboot the phone shortly)
4. Power off the phone and hold Volume Down and power.
5. Use volume down to select recovery
6. In clockwork recovery volume down to "partitions menu" and hit the track pad to select
7. Select "mount /system" and "mount /sdcard" "mount /data"
8. Plug in your usb cord and open a command line on your pc
9. enter adb shell and type the following commands
cp /sdcard/hosts /data/data/hosts
rm /system/etc/hosts
ln -s /data/data/hosts /system/etc/hosts
10. Reboot your phone and enjoy adfree android.
this is what i used on my legend was hoping it would be as easy, :\
I think it might be better to use 0.0.0.0 instead of 127.0.0.1
With 127.0.0.1 it will attempt to connect to itself and wait until it times out, but with 0.0.0.0 is will stop straight away since it's an invalid address.
noobdeagle said:
Does this method not work with the temp root?
1. Search for Adfree Android on the market
2. Install and run
3. allow it to download and install new hosts file, it will copy it to your sdcard and try to replace /system/etc/hosts but fail (it should reboot the phone shortly)
4. Power off the phone and hold Volume Down and power.
5. Use volume down to select recovery
6. In clockwork recovery volume down to "partitions menu" and hit the track pad to select
7. Select "mount /system" and "mount /sdcard" "mount /data"
8. Plug in your usb cord and open a command line on your pc
9. enter adb shell and type the following commands
cp /sdcard/hosts /data/data/hosts
rm /system/etc/hosts
ln -s /data/data/hosts /system/etc/hosts
10. Reboot your phone and enjoy adfree android.
this is what i used on my legend was hoping it would be as easy, :\
Click to expand...
Click to collapse
on the DHD we don't have a custom recovery nor write access to /system atm so this won't work
Strangely enough my Ad-Free works fine without the need of this.
0.0.0.0 worked for me.. cheers

Root Remix OS for PC

This guide is to root Remix OS for PC
You will need Ubuntu for Rooting (You can download and run it in live CD)
If you are experienced with linux systems don't read whats written in bracket
1. Download and Extract RemixRoot.zip
2. Copy system.img from your pendrive or hdd wherever you have installed Remix Os to this folder (ie RemixRoot folder it should be alongside Readme.txt)
3. Open Terminal (Ctrl+Alt+T)
4. Type
Code:
sudo -i
5. Enter your password (If you are running in live cd then no password)
6. Change directory to RootRemix folder (Goto tmp folder, right click and goto properties and copy location, this is your <dir> replace it in command below )
Code:
cd <dir>
7. If you did it right next line of terminal will end with RemixRoot# followed by blinking cursor
8. Now run rootx.sh script by typing
Code:
sh rootx.sh
9. If everything goes right there wont be any error message and you will get a root.img in your RemixRoot folder
10. Rename it to system.img and copy to your pendrive/hdd replacing previous system.img
11. Reboot and go to RemixOS and update SuperSU binaries
12. That's it! you are now rooted
Thanks to Chainfire & hackarchive
I tried it but i got no system.img, i got r/w access to system (choosen by install) so i tried to symlink it to my system directory and commented out all image mounted related things from script and then tried it.
but after that i cannot boot android anymore, i think the problem is app_process linking to daemonsu, since i set back to original it boots like normal but no superuser access. SuperSU said theres is no superuser installed.
Any suggestion?
Silly question but will I lose root access if I update to the newest version by flashing the new image over the top?
Yes a silly question.... Deserves a silly answer. It will still be underneath, but good luck trying to retrace it!
any other method for rooting, without using ubuntu?
#tested with ubuntu live, and it works like a charms. Thank you..
Sent from my C46G using XDA Premium 4 mobile app
ninharp said:
I tried it but i got no system.img, i got r/w access to system (choosen by install) so i tried to symlink it to my system directory and commented out all image mounted related things from script and then tried it.
but after that i cannot boot android anymore, i think the problem is app_process linking to daemonsu, since i set back to original it boots like normal but no superuser access. SuperSU said theres is no superuser installed.
Any suggestion?
Click to expand...
Click to collapse
same problem here.
Hope same other method can solved
I modified the original script to work with the system folder installation and i removed all app_processX dependend things from script (dunno if it affects the root in any way, cannot find any issue by now) Read the Readme.txt for further installation instructions. The link you find on the reddit sub that GoPal has posted! I cannot post links right now.
Try this
kretex said:
Hope same other method can solved
Click to expand...
Click to collapse
ninharp said:
I tried it but i got no system.img, i got r/w access to system (choosen by install) so i tried to symlink it to my system directory and commented out all image mounted related things from script and then tried it.
but after that i cannot boot android anymore, i think the problem is app_process linking to daemonsu, since i set back to original it boots like normal but no superuser access. SuperSU said theres is no superuser installed.
Any suggestion?
Click to expand...
Click to collapse
You will get root.img file you will have to rename it to system.img
masdeco said:
same problem here.
Click to expand...
Click to collapse
Me too [emoji25]
Envoyé de mon E5333 en utilisant Tapatalk
I've just installed RemixOS 2.0 onto a partition on my Lenovo X200T. I followed the instructions and all was good until I tried to run SuperSU. When it tried to update via the normal method the install failed and asked for a reboot. Any suggestions.
ninharp said:
I modified the original script to work with the system folder installation and i removed all app_processX dependend things from script (dunno if it affects the root in any way, cannot find any issue by now) Read the Readme.txt for further installation instructions. The link you find on the reddit sub that GoPal has posted! I cannot post links right now.
Try this
Click to expand...
Click to collapse
the answer is replace the system folder. this is my methode :
1. copy the system img from the extracted remix iso to somewhere
2. then run the script
3. unpack the system img that already rooted and copy all the content to the system folder of the remix (replace)
4. done. Remix os rooted.
Guys, I installed Remix to ext4 partition (in order to use all free space), so there's no "system.img" on it (but there's "system" folder). How to modify the script or to root Remix other way?
masdeco, thanks for the idea! How do you unpack img file, btw?
4ezahernya said:
Guys, I installed Remix to ext4 partition (in order to use all free space), so there's no "system.img" on it (but there's "system" folder). How to modify the script or to root Remix other way?
masdeco, thanks for the idea! How do you unpack img file, btw?
Click to expand...
Click to collapse
after root the system img then mount it, copy all the content to the system folder of your remix.
since I am a linux user so I use this command :
mount -o loop system.img tmp
this is so cool cool
Works Lenovo Yoga 2 11
Installed to a partition on my HD:
Downloaded RemixOS iso
extracted contents of iso
created temp, data and system folders
ran this tool to root the system.img (now root.img)
renamed root.img back to system.img
mounted system.img to temp folder
copied contents of temp folder to system folder
added entry in grub
now I am triple booting Windows, Linux and RemixOS 2.0 Android with ROOT
Thank You!!!
here is a xdelta3 for patching system.img for those using Remix OS 2 from a USB stick and run windows
GizmoTheGreen said:
here is a xdelta3 for patching system.img for those using Remix OS 2 from a USB stick and run windows
Click to expand...
Click to collapse
can you please explain its usage?
the_poolee said:
can you please explain its usage?
Click to expand...
Click to collapse
me too!
Please
the_poolee said:
can you please explain its usage?
Click to expand...
Click to collapse
dariett said:
me too!
Please
Click to expand...
Click to collapse
it shouldn't be too hard to figure out, put the files in your folder of choice with the system.img from your usb stick, run the batfile. it should create a file named rooted system image, now just replace system.img on your usb stick with that and run...
ofcourse I am assuming your system.img is identical to the one I had, which it should be if it was the 2.0 dev preview which is the only thing you can get today, right?

What is the right way to turn an app into a system app under Android Oreo and above ?

I have tried several methods to turn an app into a system app but even if in some case I managed to install the app inside /system/priv-app the app was not running as a system app as I could figure out by checking running the command "adb shell ps".
So please could someone tell me if I missed something or if there is some limitation link to Lineage or may be Magisk or TWRP to have an app runing as a system app ?
I have tried with Lineage 15.1 (Oreo) and magisk 21.2 the phone is a Samsung S5 using TWRP 3.5.0_9-0 as system Recovery
First method was to
1 making a copy of the app folder to the internal storage
2 renaming that copied Folder with a short name without dot (like renaming com.example.myapp folder to Myapp Folder)
3 renaming the apk from base.apk to Myapp.apk
4 uninstalling the app
5 under TWRP recovery mode mount the system partiton and copying the Myapp folder to system/priv-app directory
6 chmod 755 Myapp Folder
7 chmod 644 Myapp.apk
8 wipe Dalvilk Cache and rebooting
Steps 2 and 3 might be useless it was just because I noticed the Priv-app directory used these naming Scheme for apps inside this folder
I tried this method also under Lineage 17.1 and Magisk 21.4 but then the phone was not able to reboot until I delete the newly created folder inside Priv-app
I also tried another method using Magisk Systemize (Terminal) module but the result was the same (the app was running but not as a system app)
As I have never seen that it was mentionned in any posted method explaning how to turn an app into a system app, the installed app was not signed with the platform key and the manifest was not including android:sharedUserId="android.uid.system"
Thanks in advance to those that will try to help.
Have you tried copying it to /system/app ?
Droid_76 said:
Have you tried copying it to /system/app ?
Click to expand...
Click to collapse
Yes and unfortunately the result was exactly the same
If DM-Verity & AVB are enabled these locks must get disabled before trying to operate on /system partition
jwoegerbauer said:
If DM-Verity & AVB are enabled these locks must get disabled before trying to operate on /system partition
Click to expand...
Click to collapse
Thanks but I don't think I have these enabled as I can mount write on the system partition, how do you check whether they are enabled or not ?
Newer Android versions have these locks by default enabled - they are set within file vbmeta.img : If enabled then phone's bootloader always loads device's Stock ROM, not any modded ROM where it doesn't matter whether partitions temporarily got mounted - by you - as RW or not.
Long story short: You've to unlock phone's bootloader, if not done yet, then disable the locks
Example code:
Code:
adb devices
adb reboot fastboot
fastboot devices
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
I wonder what's the difference between a system app and a common app.
James_Watson said:
I wonder what's the difference between a system app and a common app.
Click to expand...
Click to collapse
Apps developed as system app / system privileged app can access System APIs whereas common user app cannot.
Simply installing a common user app as system app / system privleged app makes NO SENSE at all.
jwoegerbauer said:
Newer Android versions have these locks by default enabled - they are set within file vbmeta.img : If enabled then phone's bootloader always loads device's Stock ROM, not any modded ROM where it doesn't matter whether partitions temporarily got mounted - by you - as RW or not.
Long story short: You've to unlock phone's bootloader, if not done yet, then disable the locks
Example code:
Code:
adb devices
adb reboot fastboot
fastboot devices
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
Click to expand...
Click to collapse
Thanks but correct me if I'm wrong I could not have installed LineageOS TWRP and Magisk if Dm-verify was active so I don't think it is the issue here. I'm still looking forward what is preventing the app to run as a system app when it is installed in system/priv-app. The app is then running but as a standard app.
Lisadev said:
I'm still looking forward what is preventing the app to run as a system app when it is installed in system/priv-app. The app is then running but as a standard app.
Click to expand...
Click to collapse
Must admit I don't understand your problem: an app either runs or runs not where it doesn't matter where it's located. That's also true if an app has root rights granted.
IMO only thing of interest is what Android app's permissions are granted. A permission SYSTEM / ALLOW_ALL what I think you expect to be there doesn't exist. See also here:
https://developer.android.com/reference/android/Manifest.permission#public-constructors_1
I ran into problems with a couple of methods as well. People said they would work, but they were no good. But do you know what has worked for me, reliably and consistently?
App Systemizer.
Just search for App Systemizer through Magisk. Download and install, then reboot. Now, open up a terminal with superuser privileges. Yeah, gotta use a terminal for this one. Open terminal and enter the command su (in case you didn't know how to get superuser privileges through a terminal). Once you've done that, enter the command systemize and then follow the prompts.
I had problems with other methods. This was the one that worked. Give it a try.
Start command prompt on your computer to navigate where the APK file is located. Enable USB debugging on your device and connect it to the computer via USB cable. Your phone will automatically rebooted and your app will now be saved as a system app.
jwoegerbauer said:
Must admit I don't understand your problem: an app either runs or runs not where it doesn't matter where it's located. That's also true if an app has root rights granted.
IMO only thing of interest is what Android app's permissions are granted. A permission SYSTEM / ALLOW_ALL what I think you expect to be there doesn't exist. See also here:
https://developer.android.com/reference/android/Manifest.permission#public-constructors_1
Click to expand...
Click to collapse
Fore instance there is some permissions like REBOOT that require a system app you will not be able to reboot through PowerManager otherwise even if I know you can rebbot by other means on a rooted phone using some su command.
FailSafeNow said:
I ran into problems with a couple of methods as well. People said they would work, but they were no good. But do you know what has worked for me, reliably and consistently?
App Systemizer.
Just search for App Systemizer through Magisk. Download and install, then reboot. Now, open up a terminal with superuser privileges. Yeah, gotta use a terminal for this one. Open terminal and enter the command su (in case you didn't know how to get superuser privileges through a terminal). Once you've done that, enter the command systemize and then follow the prompts.
I had problems with other methods. This was the one that worked. Give it a try.
Click to expand...
Click to collapse
Yes thanks but if you read my first post you will see that I have tried Systemizer and it works in the sense that the app in installed inside system/priv-app folder and is able to run but it does not run as a system app
nihitthakkar said:
Start command prompt on your computer to navigate where the APK file is located. Enable USB debugging on your device and connect it to the computer via USB cable. Your phone will automatically rebooted and your app will now be saved as a system app.
Click to expand...
Click to collapse
I don't get it, you probable forgot to post something in your message
Lisadev said:
Yes thanks but if you read my first post you will see that I have tried Systemizer and it works in the sense that the app in installed inside system/priv-app folder and is able to run but it does not run as a system app
Click to expand...
Click to collapse
It doesn't? How can you tell? Maybe I've been missing something all this time. Maybe I only think App Systemizer works.
Lisadev said:
Não entendi, provavelmente você se esqueceu de postar algo em sua mensagem
Click to expand...
Click to collapse
Hello Friend! This question is a mystery to me. A while ago I created a thread explaining how to turn the Cerberus app into a system app and still survive a factory reset. I can guarantee you that my method worked until about 4 months ago.
This is the thread:
[GUIDE] [CERBERUS] [MAGISK] How to install Cerberus as System app.
Hello friends, I bring good news. Yes! It is possible to install Cerberus as a system app. (Even if it's rooted with Magisk) Yes, Cerberus will survive a factory reset. And your device will be traceable after a factory reset. Obviously the...
forum.xda-developers.com
For some reason now I also can't make an apk stay in Priv-app after reboot.
Even after I successfully flash vbmeta.img as described in the link below, I can't get it to work.
How to disable dm-verity or Android Verified Boot (AVB)
This is a quick guide showing how to disable dm_verity or Android Verified Boot (AVB). Disabling dm-verity / AVB is only important if you intend to flash custom images such as patched boot, custom rec
forum.hovatek.com
The question that everybody wants to hear. Did any methods work for you?
At the time of posting this (9th oct, 2021), this method works in my Android 10 (dunno 11, but most prob.)
Used Magisk root
1) First step, make /system writable (google made it read-only) by applying instruction from this thread - https://forum.xda-developers.com/t/script-android-10-universal-mount-system-read-write-r-w.4247311/
This will make sure that folders moved into /system/app or /system/priv-app are permanent across reboots.
2) Install Lucky Patcher (search google to download)
3) Go to Magisk manager and install Lucky Patcher Module for moving apps to system.
4) Normally install the app you are aiming for. Grant it all necessary permissions by going to apps settings. (don't skip this particular step. Skipping it can make permissions not able to grant later on)
5) Go to Lucky Patcher and select the app, select tools option and then select move to /system/priv-app. Tick the use Magisk module checkbox
( No, not done yet. Remember, module only mounts the app, not truly move it to /system/priv-app )
6) Turn off the Lucky Patcher Module in Magisk and reboot. You will notice app has disappeared from system (expected behaviour)(don't skip this step)
7) Open a terminal app.
Type-
su
mount -o remount,rw /
After success (may need to reboot),
open a root file manager, go to folder /data/adb/modules/luckypatcher_apps/system
Here, you would find the real apk folder for /system/priv-app as well as the permission configuration for /system/etc/permissions
Copy both folders to respective /system directories.
(we use Lucky Patcher here since it generates correct files with the right permissions, but of course, App Systemizer may also be used, but the steps change and I don't use it, so continue)
8) Go to /data/data folder and delete the app data folder for the app that was moved to /system/priv-app (prevents bugs if any)
9) Reboot phone. Now the app you wanted is fully system privileged with it actually existing in /system/priv-app (can check with TWRP's file manager).
There is no modules like App Systemizer or Lucky Patcher module mounting it. Done.
10) As an aside, just delete the /data/adb/modules/luckypatcher_apps/system folder. Like this, no problem will arise even if you enable this module again for whatever reason.
That's it, all done. Survival across reboots is already a sure thing. Now try to Factory Reset if you want to test if it survives across resets.
*Note - Of course, just make a Nandroid and internal SD backup in case.
Who doesn't want a "Save Game" option in life?
System App is not easily uninstalled by user, so it is a type of must have app as a android OS for a specific vendor(HTC, MOTO, Samsung).
Now how we can make an app as a system App.
Have source code
Have .apk Only
Step 1 Create a folder inside packages/apps/
First create a folder for your app ( Let say MyTestApp) inside packages/apps/ of your android AOSP downloaded source code.
Then create a Android.mk file inside the folder(MyTestApp).
Step 2 open Android.mk file and add folowing code Snippet and save this mk file.
Step 3 put your app name in build/target/product/ folder
open core.mk file from build/target/product/ folder and add your app name(MyTestApp) in
PRODUCT_PACKAGES tag at the bottom MyTestApp.
Now step by step procedure for .apk file
Step 1 will be same like above
only change is that in place of src, res folder just put your .apk file.
step 2 open Android.mk file and add folowing code Snippet.
Step 3 will be same as above mention for Android source code (a)
This is all about how to make an android app as a system App.
Jeffrey A. Hancock said:
System App is not easily uninstalled by user, so it is a type of must have app as a android OS for a specific vendor(HTC, MOTO, Samsung).
Now how we can make an app as a system App.
Have source code
Have .apk Only
Step 1 Create a folder inside packages/apps/
First create a folder for your app ( Let say MyTestApp) inside packages/apps/ of your android AOSP downloaded source code.
Then create a Android.mk file inside the folder(MyTestApp).
Step 2 open Android.mk file and add folowing code Snippet and save this mk file.
Step 3 put your app name in build/target/product/ folder
open core.mk file from build/target/product/ folder and add your app name(MyTestApp) in
PRODUCT_PACKAGES tag at the bottom MyTestApp.
Now step by step procedure for .apk file
Step 1 will be same like above
only change is that in place of src, res folder just put your .apk file.
step 2 open Android.mk file and add folowing code Snippet.
Step 3 will be same as above mention for Android source code (a)
This is all about how to make an android app as a system App.
Click to expand...
Click to collapse
This means to compile the ROM yourself?

Recovery Disappears

I bought a phone (ZTE 2050) that has next to nothing as far as development goes. I have tried to install TWRP recovery but it had never actually worked. I have tried using various tools that port recovery to MTK devices. None of them have worked. I have been able to achieve root through Magisk. However, when I do, I no longer have the stock recovery either. There are several other problems that happen as well, but nothing I cannot work around. What could I be doing that is causing me to lose recovery? The chipset is MTK6771 and it is an ARM-V8 64 bit and it is running Android 9. Literally the only things I'm able to find online regarding this phone is the sites that I believe only copy and paste from other phones whether the root method actually works out not. Almost everything tells me to use MTK Tool but that definitely doesn't work. I have issues with Smart Phone Flash Tool working as well despite all drivers being installed correctly. The only way I have been able to achieve root is through unlocking the Bootloader and flashing. And even though I follow the instructions on commands, I still lose the stock recovery. Any help would be greatly appreciated.
Reflash phone's stock ROM.
xXx yYy said:
Reflash phone's stock ROM.
Click to expand...
Click to collapse
I have flashed the stock system at least 50 times by now. I have tried flashing everything in different orders as well. When I have root, it always removes the recovery. When I open my file manager, I use Solid Explorer, it tells me there is no root file system. I have tried other root file managers as well. They all tell me the same thing.
Android is rooted if su cmdlet is present in Android's filesystem
I've got a $100 Chinese MTK phone and the one redeeming feature is that once the bootloader is unlocked, you can fastboot over USB (bootstrap).
I used SP flash tool to backup the ROM and WwR_MTK to extract the partitions allowing me to make my own custom recovery to boot with fastboot. Briefly, I found a twrp recovery online for another MTK phone and just played around with zImage & initrd.
Shell commands, dmesg, cat /proc/partitions & blkid on the phone come in handy to track down in partition layout. No need to flash anything so don't get issues with /system/bin/install-recovery.sh
xXx yYy said:
Android is rooted if su cmdlet is present in Android's filesystem
Click to expand...
Click to collapse
I got it to hang on to the stock recovery. However, the bootloader remains unlocked. If I lock it again in fastboot, it will not allow me to boot the phone. When I try to flash vbmeta, it tells me there is no such file on the system.
xdabookam said:
I've got a $100 Chinese MTK phone and the one redeeming feature is that once the bootloader is unlocked, you can fastboot over USB (bootstrap).
I used SP flash tool to backup the ROM and WwR_MTK to extract the partitions allowing me to make my own custom recovery to boot with fastboot. Briefly, I found a twrp recovery online for another MTK phone and just played around with zImage & initrd.
Shell commands, dmesg, cat /proc/partitions & blkid on the phone come in handy to track down in partition layout. No need to flash anything so don't get issues with /system/bin/install-recovery.sh
Click to expand...
Click to collapse
I'll give that a shot. I just tried to open my root file system and it told me that BusyBox isn't installed. I thought I had read that BusyBox wasn't necessary with Magisk. Last time I tried to install a BusyBox, it screwed the whole system up. Is there one you would suggest? I've seriously messed with this phone 1000x's now and it's made me giggle shy to do anything to it at the moment.
Some devices have 'toolbox' or 'toybox' as a limited replacement for busybox (ls -al /bin/ls should reveal what binary the sym link points to).
I've used the ru.meefik.busybox app from the play store.
finnroth69 said:
the whole system up. Is there one you would suggest? I've seriously messed with this phone 1000x's now and it's made me giggle shy to do anything to it at the moment.
Click to expand...
Click to collapse
xdabookam said:
Some devices have 'toolbox' or 'toybox' as a limited replacement for busybox (ls -al /bin/ls should reveal what binary the sym link points to).
I've used the ru.meefik.busybox app from the play store.
Click to expand...
Click to collapse
xdabookam said:
Some devices have 'toolbox' or 'toybox' as a limited replacement for busybox (ls -al /bin/ls should reveal what binary the sym link points to).
I've used the ru.meefik.busybox app from the play store.
Click to expand...
Click to collapse
Ok, yeah I just checked it and it says toybox.
xdabookam said:
Some devices have 'toolbox' or 'toybox' as a limited replacement for busybox (ls -al /bin/ls should reveal what binary the sym link points to).
I've used the ru.meefik.busybox app from the play store.
Click to expand...
Click to collapse
I just installed the BusyBox and my whole system froze and started acting up.
xdabookam said:
Some devices have 'toolbox' or 'toybox' as a limited replacement for busybox (ls -al /bin/ls should reveal what binary the sym link points to).
I've used the ru.meefik.busybox app from the play store.
Click to expand...
Click to collapse
I rebooted and it started acting ok once again. When I tried to open my file manager to access to root file system, this is still the message I got even though I have not uninstalled the BusyBox.
xdabookam said:
Some devices have 'toolbox' or 'toybox' as a limited replacement for busybox (ls -al /bin/ls should reveal what binary the sym link points to).
I've used the ru.meefik.busybox app from the play store.
Click to expand...
Click to collapse
I just opened the BusyBox app and it says it isn't installed even though I have not uninstalled it either.
cm
xXx yYy said:
Android is rooted if su cmdlet is present in Android's filesystem
Click to expand...
Click to collapse
"cmdlet" not found. Yet Magisk is installed and I am able to access root.
If you can successfully apply su ( read: Switch User cmdlet ) then it got installed by whatever method.
finnroth69 said:
I just opened the BusyBox app and it says it isn't installed even though I have not uninstalled it either.
Click to expand...
Click to collapse
Busybox is just a tool / binary executable command to replace missing
linux commands. You don't need it installed on the phone, just access to the binary to run commands in the shell (copy it from /data/app/....) - its statically linked so should run without issue in the shell.
xXx yYy said:
If you can successfully apply su ( read: Switch User cmdlet ) then it got installed by whatever method.
Click to expand...
Click to collapse
Ok, I understand that. What I don't understand is why I am now being told that vbmeta cannot be found and installed and my bootloader must remain unlocked. Or why I cannot install recovery without losing recovery.
xdabookam said:
Busybox is just a tool / binary executable command to replace missing
linux commands. You don't need it installed on the phone, just access to the binary to run commands in the shell (copy it from /data/app/....) - its statically linked so should run without issue in the shell.
Click to expand...
Click to collapse
I can't copy it it. It won't allow me into the root file system.
xdabookam said:
Busybox is just a tool / binary executable command to replace missing
linux commands. You don't need it installed on the phone, just access to the binary to run commands in the shell (copy it from /data/app/....) - its statically linked so should run without issue in the shell.
Click to expand...
Click to collapse
I can't copy it it. It won't allow me into the root file system.
xdabookam said:
Busybox is just a tool / binary executable command to replace missing
linux commands. You don't need it installed on the phone, just access to the binary to run commands in the shell (copy it from /data/app/....) - its statically linked so should run without issue in the shell.
Click to expand...
Click to collapse
I just installed another BusyBox and the system is running fine afterwards, but this is the message I get when trying to open the root file system.
xdabookam said:
Busybox is just a tool / binary executable command to replace missing
linux commands. You don't need it installed on the phone, just access to the binary to run commands in the shell (copy it from /data/app/....) - its statically linked so should run without issue in the shell.
Click to expand...
Click to collapse
I pulled up the currently installed binary installed through shell.

Categories

Resources