Can Xposed hook Runtime.loadLibrary for a system call ? - Xposed General

The custom rom I am using on my device for some reason doesn't have logcat. After a bit of digging up in the root folder, I found out that it was missing logd file which should be present under /system/bin and is necessary for logcat to work. Already tried to copy it from the official rom of my device (I extracted it from system.img) but pasting it manually (tried both a root explorer and adb) in /system/bin won't do anything as any changes made to /system/bin get reverted back automtically after reboot.
So I thought of a method about hooking Runtime.loadLibrary with xposed and redirecting it to logd on my internal storage when it's requested. Isn't that possible ?
Otherwise, do you suggest any other solution?
Do you think I should move the file with twrp if this doesn't work ? (I am avoiding the use of it because it's still unstable for my device and bootlooped a few times.).
Or should I edit the custom rom's system.img and repack it (I'm afraid if it's size changes my device won't boot)
I will be very grateful if someone helps me out

if you copy a file you must set right permissions and ownership

Related

Help unrooting

Need to load an app on my phone that can detect the presence of superuser.apk and su, so I'm trying to delete those items. I installed them by flashing a zip in recovery. However, due to the kernel level r/w protection on /system, I can't delete superuser or su by normal means (i.e., a root file explorer).
Anybody know how I can get rid of them? I assume I need some sort of a flashable zip, but haven't found one. Thanks.
Edit: Never mind. Figured out that if I just delete the /system folder from the SuperSU zip, the updater script automatically deletes all old superuser files, and then has no source for the new files. So basically it just removes SuperSU and su. I think that got the job done.

problem with replacing gps.conf

Hi,
I hope this is the write location for my post.
I have a HTC ONE rooted, android 4.3
I have a problem with my GPS: it doesn't lock any satellite. Reading on forum, I found that the problem may be the setting of gps.conf file in /system/etc.
In fact, checking it, I found that the NTP_SERVER set was for north.america, while I'm in Europe.
I would like to modify or replace it, but I'm experiencing some problem. Using Root Browser it seems to be able to modify it, but after rebooting the device it is exactly the same before the editing. I tried using other editors as ES File Explorer, but when I try to modify the file, it says "read only file system".
It makes me thing that also the other editor is not able to modify the file, since after reboot it is actually un-edited.
What do you think? how can I actually write in file system and actually modify gps.conf?
Thank you in advance
Let me add another detail: I tried to create a new empty file in the same folder with Root Browser. It seems to be able to create it, but after rebooting the device it desappears..so I guess I actually can't modify/write in the file system..
aerosmike said:
Hi,
I hope this is the write location for my post.
I have a HTC ONE rooted, android 4.3
I have a problem with my GPS: it doesn't lock any satellite. Reading on forum, I found that the problem may be the setting of gps.conf file in /system/etc.
In fact, checking it, I found that the NTP_SERVER set was for north.america, while I'm in Europe.
I would like to modify or replace it, but I'm experiencing some problem. Using Root Browser it seems to be able to modify it, but after rebooting the device it is exactly the same before the editing. I tried using other editors as ES File Explorer, but when I try to modify the file, it says "read only file system".
It makes me thing that also the other editor is not able to modify the file, since after reboot it is actually un-edited.
What do you think? how can I actually write in file system and actually modify gps.conf?
Thank you in advance
Let me add another detail: I tried to create a new empty file in the same folder with Root Browser. It seems to be able to create it, but after rebooting the device it desappears..so I guess I actually can't modify/write in the file system..
Click to expand...
Click to collapse
You need an unsecured kernel (/system writable) to write to /system partition of the htc one, not only root.. Otherwise, all changes will be reverted at reboot like you are experiencing.
Kernels for htc one here
And note that modifying/deleting files in /system will probably prevent you to install future ota unless you revert the change you have made. There is a md5 checksum of many files in /system before the ota installs. If the md5 cheksum doesn't match then the ota will not install. This might not apply to the .conf file you want to edit but just in case, make a backup of that file before. So if the next ota fail, you'll know why.
alray said:
You need an unsecured kernel (/system writable) to write to /system partition of the htc one, not only root.. Otherwise, all changes will be reverted at reboot like you are experiencing.
Kernels for htc one here
And note that modifying/deleting files in /system will probably prevent you to install future ota unless you revert the change you have made. There is a md5 checksum of many files in /system before the ota installs. If the md5 cheksum doesn't match then the ota will not install. This might not apply to the .conf file you want to edit but just in case, make a backup of that file before. So if the next ota fail, you'll know why.
Click to expand...
Click to collapse
Thank you very much

[Q] Anyway to manually modify app_processes back to original?

Hello.
Something gone wrong with my backup, the app_process.orig wasnt created, system status is modified and long story short i would like to get app_process to its original form.
So my question is : Is there a way to manualy remove changes done to app_process by xposed instaler? Or any other way to get it back to stock?
If your device is bootlooping:
If you have the ROM of device, you can extract
Code:
/system/bin/app_process
and push to your device.
Given that your device's USB debugging was on. If it wasn't, you can copy the app_process file in your sdcard and flash Aroma File Manager in recovery mode and copy it in right place and set permissions.
If your device isn't bootlooping:
You can use any root file explorer to copy that in right place.

[Help] Creating Module for vendor partition changes

Hello Fellow Users,
Let me start with the fact that I have zero experience of making flash modules (TWRP/Magisk) and am just dabbling around.
Some background, I found a TWRP flash zip file which makes changes to vendor partition of Redmi Note 7 Pro (violet) running MIUI OS (Android Q) - this is a sound mod.
Now, with TWRP file the issue is that if it doesn't work or has any issues, we need to dirty flash ROM all times (or atleast dirty flash the vendor partition). There is no one-click remove option.
Hence I thought why can't the same be done via Magisk systemless and dabbled around a bit. Below is my experience of the last 2 days.
Now, coming to the original TWRP file - it copies/replaces three folders with included files to vendor partition. Path of folders is following
Code:
/vendor/etc
/vendor/lib/soundfx
/vendor/lib64/soundfx
These 3 folders and similarly named files within them already exist by default in the phone prior to flashing.
Now basis the Magisk guides I saw around and wiki from @Zackptg5 I did the following changes to the default template:
1) Edited customize.sh to define folders to be replaced
Code:
REPLACE="
/vendor/etc
/vendor/lib/soundfx
/vendor/lib64/soundfx"
2) Since Magisk will always look for the vendor under the system folder and so I moved the vendor folder under system folder
Basis same, created attached module and flashed and it installed.
But then three queries in my mind:
1) Are the new files actually replaced systemless and in-use? My concerns as don't see any intended change in sound
2) Is there a way to check if new files are being used o available to system?
3) Is this method of putting replace under customize.sh file the way out? While studying some similar modules making changes to vendor partition, I found that they have default (no change) customize.sh but rather make changes to common/post-fs-data.sh etc
So, looking forward to feedback from users experienced in making Magisk module. Thanks in advance for your time and efforts!
PS: attached is the WIP module which I wrote and also got installed in Magisk Manager
TLDR: How to make a Magisk Module using TWRP files to ensure systemless modification of folder/files in the vendor partition
1 - The REPLACE variable is used to replace the directories you specify with empty folders, not with what you want to add systemlessly. You might want to follow the advice written in the customize.sh file and read the documentation (@topjohnwu has everything explained there):
https://topjohnwu.github.io/Magisk/guides.html
Edit: If you do want to first "remove" (systemlessly, of course) everything in those folders, then keep them in the REPLACE variable. I just realised that it's a little unclear if that's what you want to do or not...
2 - That's the correct procedure. If all you want to do is to add or replace some files to your device, the only thing you need is to put those files in the /system directory of your module. That's it. The customize.sh file is used if you want to customise the installation logic of your module (not necessary if you're just adding files to your device) and post-fs-data.sh and service.sh are boot scripts to run code at boot (again not necessary if you're just adding files systemlessly to your device, see the linked docs for details).
Right now your module isn't adding anything, since the directories in the module's system folder are all empty. There's nothing to add. All it does is to replace those directories with empty ones (see #1 above). I'd say that using MMT is way overkill for such a simple module...
One you've installed a module Magisk will mount that modules files over your existing ones at boot. If the file under the real system path matches the one found in the module directory (under /data/adb/modules) everything is working as it should.
@Didgeridoohan Thanks for taking our time to give detailed reply and guidance
Finally was able to successfully install the module (named AudioEngine) and I do see files under /data/adb/modules but I have the following issue:
All these new files are under:
/data/adb/modules/AudioEngine/system/vendor folder and not under
/data/adb/modules/AudioEngine/vendor folder
Is that ok? If yes, why do we see /data/adb/modules/AudioEngine/vendor separately too?
Attached is final module as well as the screenshot of /data/adb/modules/AudioEngine/ as seen in file manager.
The /vendor folder is a symlink to /system/vendor, created by Magisk. That's just how Magisk works...
From your screenshot it looks like things are working as they should.
That uninstall script looks unnecessary though. The module isn't placing or altering anything outside the module folder, so when uninstalled there won't be any leftovers anyway.
im also try to do something similar with some audio libs in vendor partition for poco f2 with miui12 however if i add any libs to go into vendor/lib, for some strange reason, i lose wifi. theres no issues if vendor/lib/soundfx or vendor/lib64 is occupied with files just the lib directory only. the actual files that are going into lib are not replacing anything but are new files

android 11 root problem miui 12.5

hi.I rooted the phone using magisk, it was installed and apparently rooted, but I have a problem with root file programs like root explorer or es file manager. The problem is that the rw mount does not work or I even have trouble installing busybox.
my phone : redmi note 10 pro
miui version : 12.5.8 and 12.5.9
android version : 11
magiak version : 23
I don't know deeply this case, but it was told that mounting r/w is not possible in recent Androids for system partitions.
However this is Magisk benefit that you put your files to it's tree and Magisk overmounts original files, I guess it does it using option "mount --bind".
You put file into /data/adb/modules/<module_name>/system/etc/<exemplary file> and after reboot you see it under /system/etc/.
At least the above path was checked personally by me by changing /system/etc/gps_psds.conf file to my own.
F308 said:
I don't know deeply this case, but it was told that mounting r/w is not possible in recent Androids for system partitions.
However this is Magisk benefit that you put your files to it's tree and Magisk overmounts original files, I guess it does it using option "mount --bind".
You put file into /data/adb/modules/<module_name>/system/etc/<exemplary file> and after reboot you see it under /system/etc/.
At least the above path was checked personally by me by changing /system/etc/gps_psds.conf file to my own.
Click to expand...
Click to collapse
I want to install a program as a system, but it is not possible without rw mount, do you know the solution?
I presume you have at least one Magisk module installed.
Put it into /data/adb/modules/<any_Magisk_module_name>/PATH_WHERE_YOU_WANT_TO_HAVE_IT/.
If wanted directories don't exist - create them.
Reboot.
Check.
Maybe tune permissions to make file executable.
Report result here.
F308 said:
I presume you have at least one Magisk module installed.
Put it into /data/adb/modules/<any_Magisk_module_name>/PATH_WHERE_YOU_WANT_TO_HAVE_IT/.
If wanted directories don't exist - create them.
Reboot.
Check.
Maybe tune permissions to make file executable.
Report result here.
Click to expand...
Click to collapse
I have no problem installing the module. My problem is accessing the system / app folder and making changes.
What changes do you want to perform?
Change one or more of files there, right?
If so - I repeat.
Put your modified file(s) under /data/adb/modules/<any_installed_Magisk_module_name>/system/app/ and reboot.
F308 said:
What changes do you want to perform?
Change one or more of files there, right?
If so - I repeat.
Put your modified file(s) under /data/adb/modules/<any_installed_Magisk_module_name>/system/app/ and reboot.
Click to expand...
Click to collapse
I do not want to install the module, I want to move an apk file to the system/app folder that is installed as a system and can not be deleted
I wasted my time.
Good luck.
I devoted a while to check that I was right suggesting what I suggested.

Categories

Resources