Question How to Edit Files in System Partition [Android 13] - Xiaomi Poco F4 (Munch) / Redmi K40S

The last time I carried out this task [probably a couple of years back], I could easily do so via a root file manager app or either of the two commands followed by adb pull/push [under a rooted shell environment]
mount -o rw,remount /system
mount -o rw,remount /
However, all these tweaks no longer work. So could anyone point me in the right direction as to how to get this job done?
PS: the file that I am trying to edit is stored under system/product/etc/device_features
While I could still view the contents of that XML file, however, I cannot make any changes to it. So your help in this regard will be highly appreciated.

Update 1: Flashed this module and successfully mounted the system partition. However, unable to perform adb pull [in a rooted shell environment], being greeted with the /system/bin/sh: adb: inaccessible or not found error.
Any insights?

Related

Need Help with ADB

i'm new to adb. i finally got it working. the correct string is added to Path, it's in my root directory C:\. i'm able to list my device, list directories, and even push/pull (did test to sdcard). i cannot, however, mount the /system directory to r/w.
this is what's happening
C:\android\android-sdk_r06-windows\android-sdk-windows\tools> adb remount
remount failed: Invalid argument
i'm in recovery trying to do this. anyone know what's going on or can maybe lend some help? thank you
mrvirginia said:
i'm new to adb. i finally got it working. the correct string is added to Path, it's in my root directory C:\. i'm able to list my device, list directories, and even push/pull (did test to sdcard). i cannot, however, mount the /system directory to r/w.
this is what's happening
C:\android\android-sdk_r06-windows\android-sdk-windows\tools> adb remount
remount failed: Invalid argument
i'm in recovery trying to do this. anyone know what's going on or can maybe lend some help? thank you
Click to expand...
Click to collapse
if you do not have a rooted, NAND unlocked, phone, you will not be able to mount /system
timothydonohue said:
if you do not have a rooted, NAND unlocked, phone, you will not be able to mount /system
Click to expand...
Click to collapse
it is rooted and NAND unlocked lol
i was actually able to push but not where i wanted.
i did
adb push com.htc.resources.apk /system/framework
but that's not where it needs to go
so i then did
adb push com.htc.resources.apk /system/framework/
and it says /system/framework is a directory, which i know lol that's where i need the file to go.
oh yeah, and i got it mounted as r/w. so now i'm just having trouble getting the file where it needs to be with the whole "is a directory" error instead of it actually pushing the file. still unable to pull a file from that location, though.
try writing the filename. it 'should' append it automatically, but if not then try
adb push com.htc.resources.apk /system/framework/com.htc.resources.apk
timothydonohue said:
try writing the filename. it 'should' append it automatically, but if not then try
adb push com.htc.resources.apk /system/framework/com.htc.resources.apk
Click to expand...
Click to collapse
this will prob work but...
now i'm getting "error: more than one device and emulator"
edit: i'm going to reboot and start all over. not sure how to kill it off since this is a little new to me ha
timothydonohue said:
try writing the filename. it 'should' append it automatically, but if not then try
adb push com.htc.resources.apk /system/framework/com.htc.resources.apk
Click to expand...
Click to collapse
this was a successful push, but the file is still not updating so i'm lost now
also, trying to pull this file back out is not working using
C:\android\android-sdk_r06-windows\android-sdk-windows\tools>adb pull /system/fr
amework/com.htc.resources.apk com.htc.resources.apk
remote object '/system/framework/com.htc.resources.apk' does not exist
edit: this is what i'm looking at
C:\android\android-sdk_r06-windows\android-sdk-windows\tools>adb shell mount -o
rw, remount /dev/block/mtdblock3 /system
adb server is out of date. killing...
* daemon started successfully *
BusyBox v1.15.3 (2010-02-06 17:13:19 CET) multi-call binary
Usage: mount [flags] DEVICE NODE [-o OPT,OPT]
Mount a filesystem. Filesystem autodetection requires /proc be mounted.
Options:
-a Mount all filesystems in fstab
-r Read-only mount
-w Read-write mount (default)
-t FSTYPE Filesystem type
-O OPT Mount only filesystems with option OPT (-a only)
-o OPT:
loop Ignored (loop devices are autodetected)
[a]sync Writes are [a]synchronous
[no]atime Disable/enable updates to inode access times
[no]diratime Disable/enable atime updates to directories
[no]relatime Disable/enable atime updates relative to modification ti
me
[no]dev (Dis)allow use of special device files
[no]exec (Dis)allow use of executable files
[no]suid (Dis)allow set-user-id-root programs
[r]shared Convert [recursively] to a shared subtree
[r]slave Convert [recursively] to a slave subtree
[r]private Convert [recursively] to a private subtree
[un]bindable Make mount point [un]able to be bind mounted
bind Bind a directory to an additional location
move Relocate an existing mount point
remount Remount a mounted filesystem, changing its flags
ro/rw Read-only/read-write mount
There are EVEN MORE flags that are specific to each filesystem
You'll have to see the written documentation for those filesystems
C:\android\android-sdk_r06-windows\android-sdk-windows\tools>adb pull /system/fr
amework/com.htc.resources.apk com.htc.resources.apk
remote object '/system/framework/com.htc.resources.apk' does not exist
/system is under mtdblock4 on our device.
if you need to mount /system as read/writeable from adb, you should just be able to use
adb remount
if you are doing it in shell, use mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
timothydonohue said:
/system is under mtdblock4 on our device.
if you need to mount /system as read/writeable from adb, you should just be able to use
adb remount
if you are doing it in shell, use mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
Click to expand...
Click to collapse
yeah adb remount won't work for me either.
C:\android\android-sdk_r06-windows\android-sdk-windows\tools>adb remount
adb server is out of date. killing...
* daemon started successfully *
remount failed: Invalid argument
i'm going to try mtdblock4
also, if you are having issues with the adb daemon, use
adb kill-server
adb start-server
that'll reboot the adb daemon
timothydonohue said:
also, if you are having issues with the adb daemon, use
adb kill-server
adb start-server
that'll reboot the adb daemon
Click to expand...
Click to collapse
thanks. yeah i started just killing it in task manager
after using "mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system" and trying to pull, i'm still getting /system/framework/com.htc.resources.apk does not exist
yeah, not sure what to tell you then. i can't piddle around in my own, because i'm on cm6, and won't have that.
are you sure it exists?
adb shell
# cd /system/framework
# ls
that will tell you what's in there. if you can't see it, it's not there.
from a brand new shell, (or bounce back up to the root directory)
try
find -name "*resources*.*"
that should tell you every file that contains 'resources' as a part of the file name, and where it is located.
timothydonohue said:
yeah, not sure what to tell you then. i can't piddle around in my own, because i'm on cm6, and won't have that.
are you sure it exists?
adb shell
# cd /system/framework
# ls
that will tell you what's in there. if you can't see it, it's not there.
from a brand new shell, (or bounce back up to the root directory)
try
find -name "*resources*.*"
that should tell you every file that contains 'resources' as a part of the file name, and where it is located.
Click to expand...
Click to collapse
it exists. i navigated to it using root explorer. but according to this, it doesn't exist
C:\android\android-sdk_r06-windows\android-sdk-windows\tools>adb shell
adb server is out of date. killing...
* daemon started successfully *
/ # cd /system/framework
cd /system/framework
/sbin/sh: cd: can't cd to /system/framework
/ #
you can't navigate to the folder if /system isn't mounted. if you just restarted the adb server, then it won't be mounted.
timothydonohue said:
you can't navigate to the folder if /system isn't mounted. if you just restarted the adb server, then it won't be mounted.
Click to expand...
Click to collapse
that was prob the case, can't remember if i re-mounted or not when i was doing that. regardless, i was positively mounted when trying to push/pull and it wasn't working so i guess i'll just have to wait for someone to put it in a flashable zip.
i hate adb
thanks for your help dude

[HOWTO] manual rooting of Galaxy Tab (EURO)

This howto is for those people who are unable to root their Galaxy Tab using any of the automated procedures and do not suffer from CLPS (command-line-phobia-syndrome).
My story: After upgrading my EURO (GSM) Galaxy Tab to JM6 my persistent efforts to root the device using either the z4root or SuperOnClick methods have all been unsuccessful. z4root (v1.3.0) kept crashing at different stages, apparently depending on which and how many background apps were running. With SuperOneClick I never managed to get beyond the "changing permissions" stage.
Since both methods are basically wrappers of the rageagainstthecage application, I tried to perform the rooting procedure manually. Guess what, that worked without any problem and it is pretty easy to do.
The basic steps of the rooting process are:
1) use rageagainstthecage to get a temporary root shell
2) use the temporary root shell to copy three files to the read-only system partition the device
While I find the outlined procedure straightforward, you may not. Anyhow, try this at your own risk.
==== Prerequisites ====
I used Ubuntu 10.10 for this, but it should work on any other distro and on Windows just as well. Whatever OS you use, you need a working adb connection to your Galaxy Tab. Odin or Kies are of no use here.
You need the following binaries
* su
* busybox
* Superuser.apk
* rageagainstthecage
To get the all required files, simply download "SuperOneClickv1.5.5-ShortFuse.zip". That's what I used.
Get it here: http://forum.xda-developers.com/showthread.php?t=803682
Extract the contents of the ZIP, open a command-prompt on your computer and change to the directory where the extracted files are located.
Some advice if shell commands are not your regular cup of tea.
The following instructions show the shell commands. Some are executed on the host computer. Others are executed on the Galaxy Tab. You can differentiate between the two easily: All commands which start with "> " need to be executed in a shell on the host computer. Commands which are prefixed with "$ " are executed on the Galaxy Tab. In both case the ">" and the "$" must not be typed. If you copy+paste from this howto, make sure only to copy the commands and leave out the prompt.
==== Step 1: getting a temporary root shell ====
Copy the rageagainstthecage exploit to a temporary directory.
Code:
> adb push rageagainstthecage /data/local/tmp
263 KB/s (5392 bytes in 0.020s)
Change the file permissions and execute the exploit.
Code:
> adb shell
$ cd /data/local/tmp
$ chmod 777 rageagainstthecage
$ ./rageagainstthecage
[*] CVE-2010-EASY Android local root exploit (C) 2010 by 743C
(other output truncated)
Your shell session will be terminated which will throw you back to the regular command prompt of your host computer.
==== Step 2: restart adb server ====
Now stop and restart the adb server process.
Code:
> adb kill-server
> adb start-server
* daemon not running. starting it now *
* daemon started successfully *
Now reconnect to the Galaxy Tab again. Notice the '#' prompt. This means you have a temporary root shell now. We use this to execute some privileged commands which make the rooting permanent.
==== Step 3: making it permanent ====
First, make the system partition writeable. We need this to be able to copy su, busybox and Superuser.apk to the required locations. Then exit the android shell again.
Code:
> adb shell
# mount -o remount,rw -t rfs /dev/block/stl9 /system
# exit
Now we push busybox and su via adb. Then we install Superuser.apk.
Code:
> adb push busybox /system/bin
> adb push su /system/bin
> adb install Superuser.apk
The final steps are to change the file permissions for su and busybox and then remount the system partition as read-only again.
Code:
> adb shell
# chmod 4755 /system/bin/busybox
# chmod 4755 /system/bin/su
# mount -o remount,ro -t rfs /dev/block/stl9 /system
# exit
That should be all. Try a reboot and some apps which require root, like Titanium Backup. The Superuser.apk should popup a dialog requesting permission.
Hope this helps. Happy rooting.
[update]
This process worked for JMA and JMD as well.
"adb install" Superuser.apk instead of "adb push"
[/update]
It will help me !
Merci ;-)
Fantastic! This is just what I was looking for, thank you! I feel dumb now, because I started a thread of my own right as you posted this. You must just type faster than me
I ran a quick test, and it all looks good. One quick question actually. Why do you mount like this:
Code:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
When most instructions for the Galaxy Tab have you doing something like this:
Code:
# mount -o remount,rw -t rfs /dev/block/stl9 /system
I'm not saying it is wrong, in fact, it actually worked for me. I'm just curious as to why it works like that? My understanding of mounting partitions and such in Linux is a little bit weak, so I like to indulge my curiousity by bugging fine people like yourself
Anyway, thanks again, this did exactly what I needed it to. Well done, I appreciate it.
DavidThompson256 said:
One quick question actually. Why do you mount like this:
Code:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
When most instructions for the Galaxy Tab have you doing something like this:
Code:
# mount -o remount,rw -t rfs /dev/block/stl9 /system
I'm not saying it is wrong, in fact, it actually worked for me. I'm just curious as to why it works like that? My understanding of mounting partitions and such in Linux is a little bit weak, so I like to indulge my curiousity by bugging fine people like yourself
Click to expand...
Click to collapse
Thanks for pointing that out! Actually both the filesystem type and blockdevice name were totally wrong. Apparently the mount command ignores both parameters - at least when they are wrong.
I just verified this as self-punishment for not paying attention:
Code:
# mount
(...)
/dev/block/stl9 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=utf8 0 0
(...)
/system is mounted read-only to /dev/block/stl9. This is the normal state of things.
Now I remount this without the fstype parameter and using a wrong blockdevice name:
Code:
# mount -o remount,rw /dev/block/xyz /system
# mount
(...)
/dev/block/stl9 /system rfs rw,relatime,vfat,llw,check=no,gid/uid/rwx,iocharset=utf8 0 0
(...)
Surprise, this actually remounts /system in read-write mode. This is why my original howto worked despite using the wrong parameters.
Thanks again. I corrected the HOWTO.
It works for me, but i get now error message: The application calendar save (proces com.android.providers.calendar) is unexpecly stopt. Try again. Forced closing
I had this also with SuperOneClick.
When i want to start the calender in the applications i get it also.
The application wil not run anymore.
How can i resolved this.
Thnx
leonreijnders said:
It works for me, but i get now error message: The application calendar save (proces com.android.providers.calendar) is unexpecly stopt. Try again. Forced closing
I had this also with SuperOneClick.
When i want to start the calender in the applications i get it also.
The application wil not run anymore.
How can i resolved this.
Thnx
Click to expand...
Click to collapse
That is strange. The result of the rooting process is just adding three files to the system partition. I find it hard to believe that this could lead to the problem you describe. However, while experimenting with z4root I had the the effect that there were many rageagainstthecage processes running in the background and the Galaxy Tab slowed down considerably. Perhaps there is something similar going on.
Have you tried rebooting after completing the rooting process?
Try shutting down the Tab completely.After rebooting get a shell on the Tab with "adb shell" and execute "ps". That shows the process list. If that looks normal, I would try a factory reset of the device. Which ROM version are you running?
BlackLevel: Thank you soooooooooo much... I don't get how to hit the Thanks Meter thing, but here is the old fashioned way. I used a MacBook to accomplish your perfect, step by step rooting of an AT&T Galaxy Tab i987. It helps that I'm more comfortable at the command line than with most GUI systems.
I could put this into a bash script, but that could be dangerous. People really need to look at whats happening with 'adb' and have some idea of what adb is for. I did renamed your 'adbmac' to 'adb', then I could cut and paste from your instructions except for adding ./ before the adb... ie. ./adb shell
Again, wonderful work at pulling this all together in one place.
Jeff
This guide worked perfectly! I love a nice quiet clean root and it doesn't get any better than this. You my friend deserve a cookie!
Hi Guys,
I flashed to JMA, rooted it with One Click Root, and everxthing seemdet to be okay, but activating OCLF failed....is there anybody with the same problem?
Jan
Thanks a lot !. It's clean and doesn't need a kies ...
Just a question : after reboot I have to use "su" after "adb shell" to become root.
Is there any way to be root directly after adb shell ?
And thanks again ...
Mike
mbaroukh said:
Just a question : after reboot I have to use "su" after "adb shell" to become root.
Is there any way to be root directly after adb shell ?
Click to expand...
Click to collapse
The reason is that "/sbin/adbd" (the adb daemon) is running as the shell user. It would need to run as root user instead. This requires changes to the initial ram disk where adbd the relevant settings are stored.
Dealing with "insufficient permissions for device"
Thanks, this worked for me.
One small thing: running from a Linux sustem (Ubuntu 9.04), to overcome a "insufficient permissions for device" problem, I had to put my Ubuntu terminal session into su mode and restart the ADB server -- cf. groups.google.com /group/android-discuss/browse_thread/thread/f85a795644e65b59?pli=1 :
[[
adb kill-server
sudo adb start-server
adb devices
]]
gklyne said:
One small thing: running from a Linux sustem (Ubuntu 9.04), to overcome a "insufficient permissions for device" problem, I had to put my Ubuntu terminal session into su mode and restart the ADB server -- cf. groups.google.com /group/android-discuss/browse_thread/thread/f85a795644e65b59?pli=1 :
[[
adb kill-server
sudo adb start-server
adb devices
]]
Click to expand...
Click to collapse
Thanks for the feedback. On my Ubuntu 10.10 adb runs under my regular user-id (1000) and I do not have to use sudo or run the local adb server as root. That might be due to the way the udev rules are set up. Mine are rather unrestrictive and look like this:
Code:
$ cat /etc/udev/rules.d/51-android.rules
SUBSYSTEMS=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEMS=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
How do yours look like?
Which is the more simple method for root of galaxy tab euro ?are there ?
the incredible said:
Which is the more simple method for root of galaxy tab euro ?are there ?
Click to expand...
Click to collapse
Try z4root or SuperOneClick. Both methods are wrappers of the rageagainstthecage exploit and try to automate the manual process outlined here.
This thread should be a sticky. Worked like a charm.
z4root is very simple method..thanks.
thanks to Germany...
I agree, this thread should be sticky. Finaly some sense in android devel section...
Thank you very much for your guide!
I followed all the instructions in your guide, everything seems fine until I try to push the busybox and su to my Galaxy Tab.
blacklevel said:
Now we push busybox and su via adb. Then we install Superuser.apk.
Code:
> adb push busybox /system/bin
> adb push su /system/bin
> adb install Superuser.apk
[/update]
Click to expand...
Click to collapse
I received an error: "failed to copy 'busybox' to '/system/bin/busybox' : No space left on device\"
the same error for the 'su' too
(No space left on device) is impossible, my tab is brand new sealed when i got it.
I have been trying the z4root and SuperOneClick procedure to root this tab but are all unsuccessful.
I am not sure if it is because of my tab needed a "NAND unlock" (I cannot find any guide about the NAND unlock) because I received this message when I tried to install busybox from the market.
Please help! My tab is carrier locked to Bell Canada, I really wanna to unlock it and root it~
Thanks!
gummo6869 said:
I received an error: "failed to copy 'busybox' to '/system/bin/busybox' : No space left on device\"
the same error for the 'su' too,
Click to expand...
Click to collapse
The `no space left on device` message indicates that the /system partition is still read-only. That means the mount command in step 3 was unsuccessful. Did you get any error message when you executed it?

[Q] copy build.prop failed: out of memory

in Terminal emulator I am trying:
su
mount -o rw,remount /system
cp /mnt/sdcard/build.prop /system/
but I get: cp: can't create '/system/build.prop': Out of memory
any help is GREATLY appreciated. Currently build.prop is MISSING in /system/ (i've searched xda and google for the past 2 hours...)
EDIT: I get the same error from adb:
adb remount
adb push build.prop /system/
failed to copy 'build.prop' to '/system//build.prop': Out of memory
side question: what happens when build.prop is missing, and phone reboots...?
try it in recovery
or much simply just reflash the rom..no wipe is necessary.
andQlimax said:
try it in recovery
or much simply just reflash the rom..no wipe is necessary.
Click to expand...
Click to collapse
tnx, will try.
anyone knows what happens if it reboots with empty (or missing) build.prop?

[Q] Infinite boot loop recovery - need to access /system

Hello,
I was browsing many topics for over 5 hours until I decided to ask this question so I hope it will not be obvious.
I'm having an Marvell PXA1920 CPU based Android 4.3 phone - Lenovo A788t.
It was rooted using some one-click application, so I did have access to superuser, SuperSU installed etc.
After some modifications done in /etc/permissions and rebooting, phone's entering an infinite loop.
All I need to do now is undo those changes, deleting those files and copying files from backup in another folder. However, for that I need access to /etc with /system remounted in rw mode.
I can access my phone using adb in "Product mode" (phone turned on with lower-volume button pressed), however it seems that from there I don't have root access, so:
I've tried following commands:
1. adb root
result: adbd cannot run as root in production builds
2. adb remount
result: remount failed: Operation not permitted
3. adb shell mount -o rw,remount /system
result: mount: Operation not permitted (in general, no matter what I'm trying to mount/remount)
4. adb shell su
result: the same as echo "su" - prints "su", but does not cause entering su
5. adb shell su -c 'mount -o rw,remount /system'
result: prints command, but does not execute proper action
6. adb shell busybox ...
result: causes the same as all above (operation not permitted)
It seems that phone doesn't support fastboot (adb reboot bootloader doesn't work)
I know that I can do hard reset, but I don't really want to lose all my data and configuration.
Is there anything else what I can do?
Thanks for help in advance

Install MicroG on S20

I am using an SM-G9810, which is a Snapdragon (I did not know that when I purchased it or first started trying to do this). I downgraded the firmware using Odin to Android 11 (R), the latest one, December 2021 (G9810ZHS3DUL3, CSC TGY for Hong Kong). Then, I installed Magisk and patched the AP file. Then, like found in https://forum.xda-developers.com/t/...wrp-for-galaxy-s20-series-snapdragon.4157901/, steps 1-5, I installed Magisk. I performed step 6, but I believe the multidisabler flash failed. So, while I had root, I could not finish install. afaneh92 told me to run the following commands (pick which one applies, I could not find a comma in TWRP command line, so I used adb shell):
# mount r/w in twrp
adb shell mount /dev/block/mapper/system /system_root
adb shell mount /dev/block/mapper/vendor /vendor
# mount r/w in twrp terminal
mount -o remount,rw /vendor
mount -o remount,rw /system_root
# mount r/w in booted system
adb shell su -c mount -o remount,rw /vendor
adb shell su -c mount -o remount,rw /
With that done, I could then proceed with Niall's guide, https://forum.xda-developers.com/t/...sed-privacy-reconfigure-step-by-step.4402337/
I started with step 9. I found I could not remove Chrome, Gmail, youtube, and a few others. However, since I was rooted, I could uninstall with System app remover root needed_v7.2_apkpure.com.apk
Until I did the mount / remount, I was unable to write the patched services.jar or org.spoofing.org. However, it seems to be working now.
I am posting because maybe someone who knows a whole lot more will be able to help others to locate the apps to uninstall with adb like Chrome and GMS. I still got it done with the System app remover, but I still am not sure I got it all. However, MicroG is working and passes all checks, and Aurora is able to install apps. That's what I wanted, but it took many, many steps and errors to get there (with many factory resets and flash back to stock firmware). If someone else has a much better complete step by step instructions it would really help others.
Many thanks to those who did all the threads I referenced or contributed to them. I also used https://forum.xda-developers.com/t/...android-12-one-ui-4-1-stock-firmware.4394629/ as I never got the magisk key combination to give me toot access, which is what Niall did in his guide (never worked for me, I tried about a hundred times).
What I could not find or uninstall from Niall's guide was
rm /system/priv-app/ConfigUpdater/ConfigUpdater.apk
rm /system_root/system/app/Chrome/Chrome.apk
rm /system_root/system/app/Gmail2/Gmail2.apk
rm /system_root/system/app/GoogleLocationHistory/GoogleLocationHistory.apk
rm /system_root/system/app/YouTube/YouTube.apk
rm /system_root/system/priv-app/GalaxyAppsWidget_Phone_Dream/GalaxyAppsWidget_Phone_Dream.apk
rm /system_root/system/priv-app/GmsCore/GmsCore.apk
rm /system_root/system/priv-app/Phonesky/Phonesky.apk
rm /system_root/system/priv-app/Velvet/Velvet.apk

Categories

Resources