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!
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.
This has been fixed xda postNote: This is a temporary solution until someone fixes this in Xposed. Also I use my module "SnapColors" as a example throughout this post but this fix should for work any module. I've tested it with other modules and it works. If the module did not previously work on 5.0 then ignore this post and continue on with life.
TL;DR Version:
I found a temporary solution of getting modules to work on 5.1 for modules that worked on 5.0 but don't work on 5.1.
Non-TL;DR Version: Backstory and how I found his temporary solution
So a couple days ago I decided to start working on bring my module(s) to Xposed running on 5.1. In doing so what I noticed with a lot of the modules they seem to crash the app without throwing any kind of error whatsoever. Take for example one of my modules "SnapColors", if SnapColors was enabled in Xposed Installer SnapChat would always crash without throwing any error it wouldn't even say anything along the lines of "process has stopped unexpectedly" it would just close the app. So because of this behavior it led me to believe something was wrong with Xposed and not with my module(s). So I went thought what could be broken in Xposed thats causing this because 5.0 is just one up to 5.1 so the changes couldn't be that big. I went though the things that could cause this and came across "dalvik-cache" I remember reading somewhere Xposed makes some changes to the cache file (.dex) thats created during the creation of dalvik-cache files. So then I thought what if in 5.1 a small change was made to the process of making the dalvik cache files and thats what is causing the problem. So I decided to delete the dalvik cache file for SnapChat which is what my module was hooking into, then I tried opening SnapChat again but it crashed so I tried opening it again and what do you know it opened without any problems with my module fully working without any problems. The fix was kind of a guess too.
The fix/Solution
Note: If you reboot your device you have to do the fix again. Also you are deleting the dalvik cache so you won't benefit from it any more for the app(s) you delete it for. Unless you reboot then everything gets reverted.
What you have to do is delete the dalvik cache file for the app the module is for.
Example: SnapColors a module for SnapChat, so we have to delete the dalvik cache file for SnapChat.
What you need:
1) A file manager with root access, or terminal knowledge.
2) Package name example for SnapChat its "com.snapchat.android". How to get the package name look below theres a how to.
Steps for deleting the cache file:
Make sure the app is not running in the background close it if it is.
Method 1) Via terminal command:
Code:
cd /data/dalvik-cache/arm/ && rm [email protected]@"package name here without the quotes"*
Example command for SnapChat would be don't forget the "*" at the end:
Code:
cd /data/dalvik-cache/arm/ && rm [email protected]@com.snapchat.android*
Method 2) Via file manager: Navigate to /data/dalvik-cache/arm/ look for a file starting with the name [email protected]@"package name here without the quotes".apk delete this file and thats it.
Now try and open the app if it doesn't work close the app then try opening it again. make sure that apps not running in the background before trying again.
Getting package name
Via terminal command:
Code:
ls /data/data/ | grep "the app name here without quotes"
Via app: Install https://play.google.com/store/apps/details?id=com.electricsheep.asi
Open it-> Apps tab-> Tap the app-> look for "Package name:" should be the first thing.
Great job figuring that out! I hope @romracer takes a look at it and releases an update with permanent fix
mmamedov said:
Great job figuring that out! I hope @romracer takes a look at it and releases an update with permanent fix
Click to expand...
Click to collapse
Yup. I wish I could help but my knowledge of c++ is limited.
Why are apps on 5.1 creating this dalvik file if the runtime is ART?
r25txe said:
Why are apps on 5.1 creating this dalvik file if the runtime is ART?
Click to expand...
Click to collapse
The files are used by art despite the name of the folder "dalvik-cache". I think don't quote me on that.
Subscribed
sent from your moms phone
Can I get gravitybox to work?
Sent from my Nexus 5 using XDA Free mobile app
Programming4life said:
Yup. I wish I could help but my knowledge of c++ is limited.
Click to expand...
Click to collapse
Enough knowledge to help me out on twitter ALLLL the time! Lol
Great Finding. Thanks for the info.
Any chance of getting work Xposed GEL setting with CM12.1 Android 5.1
Thanks
lolzas said:
Can I get gravitybox to work?
Sent from my Nexus 5 using XDA Free mobile app
Click to expand...
Click to collapse
For module related stuff post on there thread. Getting modules to work is on the dev of the module.
mjrifath said:
Great Finding. Thanks for the info.
Any chance of getting work Xposed GEL setting with CM12.1 Android 5.1
Thanks
Click to expand...
Click to collapse
For module related stuff post on there thread. Getting modules to work is on the dev of the module.
Another step into 5.1 with xposed.. Only needs rovo magic Touch.. Thanks for it...
Programming4life said:
For module related stuff post on there thread. Getting modules to work is on the dev of the module.
Click to expand...
Click to collapse
So can you tell us what are those 95% modules for xposed on Lolli 5.1?
Can you give us some examples what modules are working on your smart phone with your metods?
Thanks...
spaxon said:
So can you tell us what are those 95% modules for xposed on Lolli 5.1?
Can you give us some examples what modules are working on your smart phone with your metods?
Thanks...
Click to expand...
Click to collapse
I said ~95% because some modules need to be updated strictly for lollipop and won't work no matter what. Its more like 99% but 95% just in case.
Programming4life said:
The fix/Solution
Note: If you reboot your device you have to do the fix again. Also you are deleting the dalvik cache so you won't benefit from it any more for the app(s) you delete it for. Unless you reboot then everything gets reverted.
Click to expand...
Click to collapse
Something I dont understand, for almost every module in xposed on every version of android, you must enable that module in xposed and reboot smartphone to get it work... is it true?
I have tried Gravitybox LP and some more modules like Flat Style Bar Indicators, with deleting them in /data/dalvik-cache/arm/ but they dont work at all, i have tried couple of times starting them.
Also I tried deleting them in twrp file manager and I have bootloop (but no worries I deleted those modules and started the phone )
Am I doing something wrong?
spaxon said:
Something I dont understand, for almost every module in xposed on every version of android, you must enable that module in xposed and reboot smartphone to get it work... is it true?
I have tried Gravitybox LP and some more modules like Flat Style Bar Indicators, with deleting them in /data/dalvik-cache/arm/ but they dont work at all, i have tried couple of times starting them.
Also I tried deleting them in twrp file manager and I have bootloop (but no worries I deleted those modules and started the phone )
Am I doing something wrong?
Click to expand...
Click to collapse
After installing a module you must enable it and then do a reboot/soft reboot yes that is true. Gravitybox LP and Flat Style Bar Indicators both modify the android system itself so theres nothing we can really do until someone fixes this bug in Xposed's code.
What if we modify the permissions or the file itself so we don't have to constantly delete it upon reboots?
Sent from my Nexus 5 using Tapatalk
Youtube background playback don`t works with that method
FuMMoD said:
What if we modify the permissions or the file itself so we don't have to constantly delete it upon reboots?
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Android doesn't like it when the permissions are changed for a cache file so it'll just fc the app.
jabarel said:
Youtube background playback don`t works with that method
Click to expand...
Click to collapse
Worked for me you may have a out dated version of YouTube or YouTube 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)
Hi, since XSharedPreferences is no longer a viable way to share data between XPosed module and another application, how would one accomplish such task? I need to have several string/int values saved in a configuration file that my XPosed module must read in its handleLoadPackage() method. RemotePreferences package is also not working above Android 11 as far as I know. How can it be done?
Use XSharedPreferences via edxposed / lsposed. It works. For any other API/xposed there is MultiprocessPreferences. I've wrote a wrapper to use both simultaniously