[Q] Is reboot required on every change to the module apk - Xposed General

Hi,
I'm playing around with creating a simple XPosed module. But every time I change the source code, compile to install the module apk, I need to reboot the phone for the changes to take effect. Is is possible to make the changed module take effect without rebooting? Thank you!

Related

"Tracer" module

hi all.
Is there a module that can trace everything about a process?
i want to know everything about an app, since the start(such as every method invoked, every file that it tries to open or it tries to run). Is there a xposed module that can do this? Or something else that can log me the whole life of an application run?
me too!

how to make exposed changes permanent???

please any one know .how to make xposed changes permanent??
that is it remains there ..... even we uninstall xposed...
AS far as my understanding goes, xposed redirects specific function calls at runtime to other functions with the intend to run different code than the app would normally do. That said, redirecting those calls can not work without xposed framework or without the xposed modules as no changes are made to the apps directly.
Correct me if I'm wrong.
You are absolutely no wrong, however if we decompile the apk that is being modded via some specific module and we change the code of the redirected functions to the one included within module and recompile the apk, we should get an apk working exactly the same as if it was hooked via xposed+module.
Please note that a lot of modules has been originally created basing on reverse idea: first someone made a mod by changing the java/smali code of some apks, then someone wrote a module making same changes but via xposed, on-the-fly.
In my opinion such an automated tool to recompile the apks and change their code basing on the code included in a xposed module IS possible.
No one made it yet, tho...
Definitely not possible. You cannot simply redirect code from one app to another. With xposed, you are always running within app that's being modded.
esgie said:
You are absolutely no wrong, however if we decompile the apk that is being modded via some specific module and we change the code of the redirected functions to the one included within module and recompile the apk, we should get an apk working exactly the same as if it was hooked via xposed+module.
Please note that a lot of modules has been originally created basing on reverse idea: first someone made a mod by changing the java/smali code of some apks, then someone wrote a module making same changes but via xposed, on-the-fly.
In my opinion such an automated tool to recompile the apks and change their code basing on the code included in a xposed module IS possible.
No one made it yet, tho...
Click to expand...
Click to collapse
Im with this guy, and if you read on xposed... yes its code being "injected" into the stock apk ...
What xposed does is creates side files (ran by zygote)
They get copied to /system/bin as app_process(xposed)
Or app_process(origional)
These files act as Init.d scripting... to inject this code...
I assume they make both these copies for reverting back to stock (disable the module)
It IS possible to make these changes permanent and re-compile the apk...
However ... de-coding the module ... to find out what is getting injected where... THATS where im at so far ...
Arter 97 has proven this possible with adaway as a standalone apk in conjuction with his youtube apk... im assuming hes using code to call upon the adaway apk files , and still using it like xposed... but merely without xposed..
If anyone with more experience could point us on how to track down how to find exactly WHAT code is being injected and where... it would be EXTREMELY helpful to many people not wanting to run 3rd party applications to get their desired functions...
Anyone feel free to chime in

[Q] Modifying XposedBridge.jar

Hi,
I have written a module which records the occurrence of specific system APIs in the log file, using "XposedHelpers.findAndHookMethod". My hooked methods simply prints the name of API into the log file. My module works perfectly fine, unless I try to run an app which is instrumented by Emma, in order to measure the code coverage. The problem is that I get "Instrumentation detected, disabling framework for app" error message in the log file.
I decided to change the XposedBridge.java and replace the new XposedBridge.jar with the old one. However, it breaks the Xposed framework and my virtual machine never starts after reboot.
How can I resolve this issue?
Is there any way safe to change XposedBridge.java and replace the XposedBridge.jar?
Thanks.

Disable Modules when Xposed is disabled

Hi,
Sometimes in Lollipop some module don't work. Then, in my case I reboot to recovery and I touch the file "conf/disabled" for starting without Xposed. After that, I like to disable the module in the UI of the Xposed Installer App... but when the framework is disabled, this option is disabled.
Please, can you change this?
Thank you!
Note: Yes, is posible to manually change the "/conf/modules.list" file from the recovery, but this is more complicated.
manos78 said:
Hi,
Sometimes in Lollipop some module don't work. Then, in my case I reboot to recovery and I touch the file "conf/disabled" for starting without Xposed. After that, I like to disable the module in the UI of the Xposed Installer App... but when the framework is disabled, this option is disabled.
Please, can you change this?
Thank you!
Note: Yes, is posible to manually change the "/conf/modules.list" file from the recovery, but this is more complicated.
Click to expand...
Click to collapse
Why don't you just disable the module, reboot, enable the module again and reboot again? No need to place any files through recovery?
By the way: could you give us more information about your device, the Android version and the Xposed files you use? Those are important information, without them nobody might help you.
orville87 said:
Why don't you just disable the module, reboot, enable the module again and reboot again? No need to place any files through recovery?
Click to expand...
Click to collapse
Because the device don't boot (bootloop on the boot animation)!!!
So, in this case the ONLY solution is: boot to recovery, touch the "disable" file, reboot with Xposed disabled... and then: How to DISABLE the module? The UI is blocking the option of enable/disable modules when the framework is disabled!
Please, remove this arbitrious limitation in the UI.
Thank you!
Why don't you just delete the modules.list inside the
data/data/de.robv.android.xposed.installer/conf/
folder?
corncobman said:
Why don't you just delete the modules.list inside the
data/data/de.robv.android.xposed.installer/conf/
folder?
Click to expand...
Click to collapse
Good alternative, but this disables all modules and you lost the info related to enabled/disabled modules... or not?
manos78 said:
Good alternative, but this disables all modules and you lost the info related to enabled/disabled modules... or not?
Click to expand...
Click to collapse
Yes, this method disables all modules. But what info related to enabled/disabled modules are you talking about? Which modules have been enabled and which not?
... you lost the info related to enabled/disabled modules... or not?
Click to expand...
Click to collapse
Not. The list of which modules are selected and which are not selected are still shown. Just disable the offending module and reboot.
corncobman said:
Not. The list of which modules are selected and which are not selected are still shown. Just disable the offending module and reboot.
Click to expand...
Click to collapse
Then you recommend "delete this file" instead of "touch the disable file" for disable only the loading of the modules but enable the framework? Then, when rebooting the phone the module list will be re-created?
The module list will be created when you change the list, i.e. toggle one module on or off. The changes only apply when you reboot.
manos78 said:
Then you recommend "delete this file" instead of "touch the disable file" for disable only the loading of the modules but enable the framework? Then, when rebooting the phone the module list will be re-created?
Click to expand...
Click to collapse
Do you want to permanently disable the module that causes the issue or do you want to use the module again after reboot?
In the first case, you can delete the corresponding module by using the in-build file manager of your recovery. Just navigate to /data/app and delete the module's folder. Done.
Otherwise, you only have the limited options presented to you (but I don't know why someone would continue using a module that is causing issues again and again).
orville87 said:
Do you want to permanently disable the module that causes the issue or do you want to use the module again after reboot?
In the first case, you can delete the corresponding module by using the in-build file manager of your recovery. Just navigate to /data/app and delete the module's folder. Done.
Otherwise, you only have the limited options presented to you (but I don't know why someone would continue using a module that is causing issues again and again).
Click to expand...
Click to collapse
Hi, I agree!
However, when a module "fails" I don't like to uninstall it... I like only to disable it. Why? Because I like to contact with the author and try fix the bug. Sometimes the problem is an update, o some other times the module is part of an App that has another functionalities. Then the best option is disable the module and not uninstall/remove it.
So, my concern is related to the best option to fix a bootloop when a module is creating some interference. Until now my best option is disable the Xposed framework, but here the recomendation is disable the load of modules. In this last case, I need to know if this file is re-created by the Xposed framework. And however, I feel is a good recomendation to enable the UI of the modules when the framework is disabled... the current behaviour is annoying.
Regards!
manos78 said:
Hi, I agree!
However, when a module "fails" I don't like to uninstall it... I like only to disable it. Why? Because I like to contact with the author and try fix the bug. Sometimes the problem is an update, o some other times the module is part of an App that has another functionalities. Then the best option is disable the module and not uninstall/remove it.
So, my concern is related to the best option to fix a bootloop when a module is creating some interference. Until now my best option is disable the Xposed framework, but here the recomendation is disable the load of modules. In this last case, I need to know if this file is re-created by the Xposed framework. And however, I feel is a good recomendation to enable the UI of the modules when the framework is disabled... the current behaviour is annoying.
Regards!
Click to expand...
Click to collapse
Ah, I see your point there. Well, I have some thoughts about another possibility. I haven't tried it yet, so no guarantee can be given if this will work. But before updating a module, you could backup the folder of the module from /data/app and place it's backup folder somewhere else. Then update the module and reboot. When facing a bootloop, just use the recovery file manager to replace the new files of the module with the old ones and reboot. This way one does not have to disable all modules or even disable/uninstall the entire framework.
orville87 said:
This way one does not have to disable all modules or even disable/uninstall the entire framework.
Click to expand...
Click to collapse
Yes, but I like the most simple option: At time, I do this when bootloop:
a) Reboot to recovery.
b) Open Aroma File Manager.
c) Rename "_disabled" to "disabled" in the xposed/config directory
d) Reboot
And when the device boots, I like to "disable" in the Xposed App... the problem is the UI... it disables interaction when the framework ins't loaded. From my point of view is a mistake! Why force this? Any reason that I don't view?
Another option is remove the file with the list of modules, but I don't know if the Xposed App recreates this file after boot, and if it's maintains the selected/unselected list of modules (normally I have some modules installed but disabled... think on Apps with Xposed add-ons that I don't like to use!).
Any comment?
manos78 said:
Yes, but I like the most simple option: At time, I do this when bootloop:
a) Reboot to recovery.
b) Open Aroma File Manager.
c) Rename "_disabled" to "disabled" in the xposed/config directory
d) Reboot
And when the device boots, I like to "disable" in the Xposed App... the problem is the UI... it disables interaction when the framework ins't loaded. From my point of view is a mistake! Why force this? Any reason that I don't view?
Another option is remove the file with the list of modules, but I don't know if the Xposed App recreates this file after boot, and if it's maintains the selected/unselected list of modules (normally I have some modules installed but disabled... think on Apps with Xposed add-ons that I don't like to use!).
Any comment?
Click to expand...
Click to collapse
When you have deleted the module list from recovery, Xposed will not create a new list after the following boot process. You have to open Xposed Installer and disable/enable a module, then reboot. This time, Xposed will create a new module list (with exactly the modules states they had before deleting the module list file apart from the last modification you have done to trigger this recreation) and you are free to go. Nevertheless, a cumbersome solution.
I have no idea why one isn't able to interact with the checkboxes, but my best bet would be to prevent the user from thinking that Xposed is indeed active and modules are not working despite being enabled.
orville87 said:
I have no idea why one isn't able to interact with the checkboxes, but my best bet would be to prevent the user from thinking that Xposed is indeed active and modules are not working despite being enabled.
Click to expand...
Click to collapse
Ok. I understand this point... with this the user don't be confused.
So, why not add one option menu in the screen of modules for "enable changes" when the framework is disabled? This option implies "the framework is disabled, but you can change the options". This be user friendly and powerful at time.
What you think?
manos78 said:
Ok. I understand this point... with this the user don't be confused.
So, why not add one option menu in the screen of modules for "enable changes" when the framework is disabled? This option implies "the framework is disabled, but you can change the options". This be user friendly and powerful at time.
What you think?
Click to expand...
Click to collapse
Might be a good point, but you have to ask rovo89 for feature requests. But I highly doubt that he will implement such thing.
orville87 said:
Might be a good point, but you have to ask rovo89 for feature requests. But I highly doubt that he will implement such thing.
Click to expand...
Click to collapse
Well, I hope Rovo89 will read this and agree to implement... it's a very simple change in the UI. :fingers-crossed:
manos78 said:
Hi,
Note: Yes, is posible to manually change the "/conf/modules.list" file from the recovery, but this is more complicated.
Click to expand...
Click to collapse
Not really complicated. If you've access to ADB simply do
Code:
adb shell sed -i '/.*PACKAGE.*/d' /data/data/de.robv.android.xposed.installer/conf/modules.list
adb shell sed -i '/.*PACKAGE.*/d' /data/data/de.robv.android.xposed.installer/shared_prefs/enabled_modules.xml
Change PACKAGE with the package name of the app.
The first command would disable only the module, not the framework, not the rest of the modules. The second command would make sure that when you open the Xposed app -> Modules, your module shows up as unchecked. The second command is not important but it is good to keep confusion at a distance.
If you don't have access to PC always, you can keep a script inside your sdcard or `/data` as
Code:
#!/bin/sh
sed -i '/.*PACKAGE.*/d' /data/data/de.robv.android.xposed.installer/conf/modules.list
sed -i '/.*PACKAGE.*/d' /data/data/de.robv.android.xposed.installer/shared_prefs/enabled_modules.xml
If you've TWRP, you can edit the file to change the package name and run the script without the need of a PC.
nomap_here said:
If you've TWRP, you can edit the file to change the package name and run the script without the need of a PC.
Click to expand...
Click to collapse
Thank you!
But quite complex! I prefer to "touch disable" for disable Xposed (fail safe boot mode) and in the UI of the App (when the Xposed is disabled) then enable/disable the ofending module. I feel is MORE SIMPLE and INTUITIVE!
I hope Tovo read this and change the UI. :fingers-crossed:

Create module that executes code if another app is started or run forever in background?

Hello!
I'm currently playing around with Java and Xposed development and I have created a simple Android app that creates a .txt file in a folder.
What I would like to do is create a Xposed module that can automatically detect when I create said .txt file, I have 2 ideas on how I could achieve that but I'm not sure what might be the best:
Idea #1:
Create some sort of background service that will always be runnning and check if there are any or new files in said folder or maybe use the FileObserver method.
Idea #2:
Hook into the app and run a function inside my Xposed module that checks with regular interval if there are any files in the folder.
I have never really done any Java or Xposed development before so all this is quite new, but I would love to know what would be the best aproach or if anyone has some better suggestions!
Thank you all!
I don't see a xposed requirement here. File change observation is easily done by automation apps like Tasker(event->file->file modified), doesn't need xposed for it. Xposed framework better used for modifications to system or apps.
As per second requirement of performing user actions on a app, you can use Xposed edge(xposed plugin) inject gestures / AutoInput(tasker plugin)

Categories

Resources