Xposed - Legacy thread. Don't panic, Xposed is still here.

Status
Not open for further replies.
Search This thread

Ramis

Senior Member
Jan 31, 2011
420
542
Auckland
Hey rovo,

Since I am having issues reading the settings file from my hooks I was thinking of copying the preferences file to a folder on the sdcard and then reading the preferences from there. Of course my first instinct was to extends the XSharedPreferences class but its final. So I was wondering if I just make my own class which is a exact copy of your XSharedPreferences, (except with a change in location) would it work?


(Also I of course tried it before asking and I am not able to import the XmlUtils class. It can't seem to find it. Could you point me to the library you used?)
 
Last edited:

angelshie

Senior Member
Apr 11, 2012
1,078
876
..Is there any possibility that it will be compatible with ART, at the moment it has conflict when using ART. :angel:
 

a.sebastiani

Member
Apr 29, 2005
6
0
Bari
Redmi Note 9 Pro
Xposed install to THL T100S ??

hi, can I install the package Gravitybox from cwm recovery on a thl t100s?
I tried to install both apk Xposed framework and also from cwm but the thl t100s goes into reboot loop.
i reverted with disabler xposed and the thl restart ok.

What can I do?

thanks Antonio
 

kt-Froggy

Senior Member
Sep 14, 2012
1,712
748
YVR
Samsung Galaxy Note II
LG G8
hi, can I install the package Gravitybox from cwm recovery on a thl t100s?
I tried to install both apk Xposed framework and also from cwm but the thl t100s goes into reboot loop.
i reverted with disabler xposed and the thl restart ok.

What can I do?
As I understand, your phone is based on MTK chipset. For some reason, the latest versions of GravityBox don't play well with MTK. This is not a problem with Xposed, but specifically with GravityBox module. I ran into similar issues on my Asus Memo Pad HD 7 (also MTK-based), and the problem has been confirmed by several other people with the same device. Try installing GravityBox v.2.9.2 from Xposed repo (and don't update it), it should work.

..Is there any possibility that it will be compatible with ART, at the moment it has conflict when using ART. :angel:
Post #2 from this thread should give you a definitive answer (emphasis is mine):
Xposed isn't compatible with ART (yet). It's a completely different architecture with pretty much no documentation. Rewriting Xposed for the ART runtime requires understanding the concept, the code structure and many details to know how it works. I have already spent dozens of hours on that and some things are working. But still it's a long way ahead. Don't expect even a test version in the near future. So please don't ask when it will be available - you will surely know when it is ready. I have nothing else to say about that.
 
  • Like
Reactions: angelshie

a.sebastiani

Member
Apr 29, 2005
6
0
Bari
Redmi Note 9 Pro
As I understand, your phone is based on MTK chipset. For some reason, the latest versions of GravityBox don't play well with MTK. This is not a problem with Xposed, but specifically with GravityBox module. I ran into similar issues on my Asus Memo Pad HD 7 (also MTK-based), and the problem has been confirmed by several other people with the same device. Try installing GravityBox v.2.9.2 from Xposed repo (and don't update it), it should work.


Post #2 from this thread should give you a definitive answer (emphasis is mine):

No the problem is not Gravity but Xposed, when install xposed and update the xposed app and reboot the THL T100S this restart in loop.

??

antonio
 

kt-Froggy

Senior Member
Sep 14, 2012
1,712
748
YVR
Samsung Galaxy Note II
LG G8
No the problem is not Gravity but Xposed, when install xposed and update the xposed app and reboot the THL T100S this restart in loop.

??

antonio
Do you mean you get a bootloop after installing Xposed framework alone, with no modules at all? Then you must have a different problem. Sorry, can't help you with that. I know GB 2.9.3+ has problems with MTK devices, and thought that would be the case with your phone, too...
 
  • Like
Reactions: BleedingIris

slekkas

Senior Member
Oct 25, 2007
686
113
No the problem is not Gravity but Xposed, when install xposed and update the xposed app and reboot the THL T100S this restart in loop.

??

antonio

I have a zopo zp998 witch have similar specs and I have the same problem. When I install xposed I get stuck in boot logo. It's not gravitybox or any other module related problem since none is activated.

Sent from my SM-N9005 using Tapatalk
 

fmurillo

Senior Member
Jun 10, 2005
66
21
Muy case is almost the same... Mtk6592... Zopo zp990+ octa corte... Same specs as zp998 bit screen size... After installing with no modules activated... Boot loop!!!!

Sent from my GT-I9300 using XDA Premium 4 mobile app
 

rovo89

Senior Recognized Developer
Jan 4, 2012
2,585
81,434
When a method wants an int for my drawable, what should I give it? I tried
Code:
modRes.fwd(R.drawable.my_drawable).getId()
but it didn't seem to work.
It isn't enough to give the ID of your drawable to the app because it wouldn't know how to resolve it properly. Use the XResources.addResource() method instead. Xposed will give you a new resource ID that you can use and will automatically set up a redirect from that ID to your resource.

Hi!
Firstly, I'd like to say this awesome work.

However, I have a problem on my Huawei U9508, after installing the framework, just the framework, it breaks my EMUI theming, all the custom icons revert back to the original icons and no amount of changing themes and restarting will help.

Unfortunately, this means I have to remove the framework and can't use all the fantastic modules that are available.

Any clue if this can or will be fixed?

Thanks in advanced, and a Happy Lunar New Year to all those that celebrate it. =)

Yeah, theming engines become more and more of a problem. There are so many of them and basically Xposed is one of them as well, which is the reason for these conflicts. Sometimes it's possible to work around these conflicts, but often it requires much time (which I don't have), especially if it doesn't appear on my own device and I have to give step by step instructions for remote debugging.
Maybe I'll add a "disable resource replacement" setting in the future so you can get at least some modules working.

Sir I've installed latest version of xposed frame work
it seems like its not working check out the screen shot
Yes, the smaller version of Busybox conflicts with some ROMs. I can compile Busybox differently, but that will make it much larger, which I don't want to put on 99.9% who don't have this issue and also not on my hosting account traffic. I'm currently testing an approach where the bigger Busybox executable can be installed as a separate package, which seems to be working nicely.

So, I had Xposed working just fine with my Moto X 4.4, today I received an OTA update to 4.4.2, and kept my root.
Installation goes ok, but if I do a hard reboot, it won't work, doesn't detect as installed on the main screen, but inside installation screen it shows as installed. If I install again and do a soft reboot, it works. If I hard reboot later, it doesn't work, I have to do a install/soft reboot afterwards.
Same goes for updating and installing modules.
Would a boot logcat + soft reboot logcat help?
No, that's basically like HTC's S-On, which resets /system on reboot. You have to flash the Xposed files. Next version will have that function builtin, for now check the first post for a link.

hello
I made 2 of bootloop logcat
if someone can help me thank you @rovo89
The second log at least includes some lines with "Xposed". It also shows several lines which look like a theming engine. So maybe this is another conflict here. Not much I can do at the moment. In case I add the setting mentioned above in the future, you can try again.

i can probably find the sdk is not the correct version

D/Xposed ( 283): Starting Xposed binary version 46, compiled for SDK 16

D/Xposed ( 283): Phone: BS472 (TCT), Android version 4.2.2 (SDK 17)

No, that's fine. The binary is compiled for SDK 16, but it works on SDK 17 and SDK 18 as well.

I'm having an issue trying to hook a method. I can't seem to get it to work no matter what I do. I'm probably doing something stupid but I can't figure it out!

First off I used apktool and looked at the smali code to find some names of methods that sound like a good hook point. Found the perfect one. My code is as follows:
...
can anybody help with this?
Keep it as an object, then call isRecording using callMethod and cast that to a boolean. I think that should work.
Code:
Object recorder = XposedHelpers.callStaticMethod(recorderClass, "getInstance");
boolean isRecording = XposedHelpers.callMethod(recorder,"isRecording");
if (!isRecording)
    XposedHelpers.callMethod(recorder,"start");

I think you need to cast the result of the second callMethod() to Boolean before, but in general, that should be the answer. You have a direct reference to the VoiceRecorderHelper class in your own class. So Android tries to resolve it with the classloader of your class and can't find it.

Hey rovo,

Since I am having issues reading the settings file from my hooks I was thinking of copying the preferences file to a folder on the sdcard and then reading the preferences from there. Of course my first instinct was to extends the XSharedPreferences class but its final. So I was wondering if I just make my own class which is a exact copy of your XSharedPreferences, (except with a change in location) would it work?

(Also I of course tried it before asking and I am not able to import the XmlUtils class. It can't seem to find it. Could you point me to the library you used?)

The easiest way would be to use the constructor takes a File as parameter, then you can use your own location.
I linked the framework against a JAR which includes the hidden methods of AOSP as well.
 

rovo89

Senior Recognized Developer
Jan 4, 2012
2,585
81,434
The ART of patience

Regarding ART possibly becoming the default runtime engine: I think that's good news because it means that we will get a stable version of ART then. I'm reluctant to work further on ART support at the moment for mainly three reasons:

1. Time. I used to spend every evening and every weekend for Xposed, either to give support here (often answering the same questions again and again), writing code or researching about bugs or new ideas. As you may have noticed, there are now days or even weeks where I don't even log on to XDA, and I'm actually glad about this.

2. Experimental software is bound to contain bugs, even severe ones. There is a reason why Google didn't make this choice available for the typical user (and keep in mind, we are not typical users). I neither want people to blame Xposed if their phone starts acting up nor do I want to hunt bugs which are caused by a runtime engine that is explicitely labelled as not finished yet.

3. As long as ART is experimental, it's much easier to make big changes to the code. Once a final version is out and used by the masses, quality engineers we be much more careful not to break things. That means that Xposed for ART on 4.5 (or whatever it will be called) might need to be completely different than for ART on 4.4. More variants means more time for maintenance. And I don't feel like pushing something out now just to drop support again in a later version. There is not enough benefit of using ART at the moment to justify that.

You know, I had already worked on ART support and spent several dozens of hours reading the code, looking for ways to hijack it, implementing my ideas, doing trial and error and starting again from the beginning. I finally had my Nexus 5 boot with Xposed in early December and quickly tested the App Settings module. I'm happy about that, but I also know that this was just a very experimental version, less ready than ART itself. It is totally hacked together and only tested with the stock ROM. ART is quite complex and has several different modes. It's not worth giving the current development to someone else before I have tested these things on my phone, where I can debug much better than instructing someone else to do it. It also requires rewriting app_process to be a light executable again, which loads either the Dalvik or ART Xposed library, depending on your settings. That would require changes in the installer as well, etc. etc.

So you see, there is still lots of work to do. At the moment, I'm not actively working on it, but trying to get some other things fixed (e.g. LG ROMs) or improved (installation via recovery, better installation feedback in case root access failed, static Busybox package). And as I said, I do have other things in my life as well. It's not about money, that's what I have my full-time job for. I work on Xposed for fun (and maybe a bit for the reputation ;)), so the best way to ensure that I keep on working on it is not taking away the fun part of it. Don't pressure me like it was my duty to implement something ASAP (!!!), be patient even if it takes a bit longer until I answer and join the volunteers who help answering basic questions here so I don't have to. Thanks!
 

rovo89

Senior Recognized Developer
Jan 4, 2012
2,585
81,434
Forgot to mention one more thing. It's unlikely that Xposed will work for ART on the day the next Android version is released. The very important "start from scratch" research is done, but as I said, I need to see how the final version works. It seems that Dalvik will still be available, for those who claim that they can't live without Xposed. Whatever may happen, remember my words about patience and fun.
 
C

codmaster

Guest
Regarding ART possibly becoming the default runtime engine:
I think that's good news because it means that we will get a stable version of ART then. I'm reluctant to work further on ART support at the moment for mainly three reasons:
1. Time. I used to spend every evening and every weekend for Xposed, either to give support here (often answering the same questions again and again), writing code or researching about bugs or new ideas. As you may have noticed, there are now days or even weeks where I don't even log on to XDA, and I'm actually glad about this.

2. Experimental software is bound to contain bugs, even severe ones. There is a reason why Google didn't make this choice available for the typical user (and keep in mind, we are not typical users). I neither want people to blame Xposed if their phone starts acting up nor do I want to hunt bugs which are caused by a runtime engine that is explicitely labelled as not finished yet.

3. As long as ART is experimental, it's much easier to make big changes to the code. Once a final version is out and used by the masses, quality engineers we be much more careful not to break things. That means that Xposed for ART on 4.5 (or whatever it will be called) might need to be completely different than for ART on 4.4. More variants means more time for maintenance. And I don't feel like pushing something out now just to drop support again in a later version. There is not enough benefit of using ART at the moment to justify that.

You know, I had already worked on ART support and spent several dozens of hours reading the code, looking for ways to hijack it, implementing my ideas, doing trial and error and starting again from the beginning. I finally had my Nexus 5 boot with Xposed in early December and quickly tested the App Settings module. I'm happy about that, but I also know that this was just a very experimental version, less ready than ART itself. It is totally hacked together and only tested with the stock ROM. ART is quite complex and has several different modes. It's not worth giving the current development to someone else before I have tested these things on my phone, where I can debug much better than instructing someone else to do it. It also requires rewriting app_process to be a light executable again, which loads either the Dalvik or ART Xposed library, depending on your settings. That would require changes in the installer as well, etc. etc.

So you see, there is still lots of work to do. At the moment, I'm not actively working on it, but trying to get some other things fixed (e.g. LG ROMs) or improved (installation via recovery, better installation feedback in case root access failed, static Busybox package). And as I said, I do have other things in my life as well. It's not about money, that's what I have my full-time job for. I work on Xposed for fun (and maybe a bit for the reputation ;)), so the best way to ensure that I keep on working on it is not taking away the fun part of it. Don't pressure me like it was my duty to implement something ASAP (!!!), be patient even if it takes a bit longer until I answer and join the volunteers who help answering basic questions here so I don't have to. Thanks!
Thanks for all your work. You are amazing, man!
 

rovo89

Senior Recognized Developer
Jan 4, 2012
2,585
81,434
@rovo89
and if I chanche my launcher
what do you call an engine theme

A theming engine provides extension points for apps or the ROM itself to change the resources (like images, colors etc.) at runtime. It's a part of the ROM, not of the launcher, so it won't make a difference if you change your launcher.
 
  • Like
Reactions: spupuz

dams161

Senior Member
Apr 27, 2012
896
113
A theming engine provides extension points for apps or the ROM itself to change the resources (like images, colors etc.) at runtime. It's a part of the ROM, not of the launcher, so it won't make a difference if you change your launcher.

ok thanks
Xposed but walking on Hungarian phone
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 638
    Xposed 2.4 beta1/beta2

    This is Xposed version 2.4 beta1. The main new features and fixes in this version are:
    • Support for Android 4.4 (KitKat)
    • Significant performance improvements of the framework
    • Viewer for the debug.log in the installer
    • Check in the installer whether Xposed is actually active and working

    First of all, I would like to thank the 45 people who donated to get me a Nexus 5, from a little "thanks" to huge amounts of money. I was really impressed and hope you like this update.

    In detail:
    Xposed should now fully support KitKat. As mentioned, that wouldn't have been possible at this time without your support.
    Modules should continue to work if they don't rely on AOSP internals that have changed in KitKat. One example: It seems that the battery icon is no longer an (animated) image, but a Java implementation. Obviously, any modules that try to replace the battery image will no longer work. The Xposed framework can't do anything here, the module needs to be rewritten. Therefore, if some of your modules don't work, please get in contact with the module author first. You will probably see an error in the new debug.log viewer in this case.
    Xposed isn't compatible with ART, I can't say yet whether it will be in the future (will require a major rewrite if possible at all). As you would get into a bootloop if you try to combine Xposed+ART, Xposed automatically resets the choice to "Dalvik". If you want to test ART, you must uninstall the framework.

    The performance improvements apply to the very core of Xposed, the method hooks, in all Android versions. In a test app developed by @exidler, the overhead per call used to be ~71 μs (= 0.071 ms) per call to a hooked method (with one empty callback handler) on my Galaxy S2. Now it's ~13 μs (= 0.013 ms). That's a relative improvement of factor ~5.5x. Thanks to @exidler for the research and several suggestions! I have sent a pre-beta to @kamso, who had reported lags with older versions. Now everything works fine for him. Anyway, I wouldn't say that Xposed had bad performance before. Keep in mind that we are talking about significantly less than a millisecond here.

    The debug.log viewer should give a quick impression whether Xposed and modules could be loaded fine. It also includes options to save the log to SD card (so it's easier to transfer it to a PC etc.) and send it via mail.

    The Xposed Installer now checks whether the latest version of the framework is active. If not (e.g. because it's not installed yet, you forgot to reboot or something in Xposed doesn't work), you will see a warning in the welcome screen and at the top of the module list.

    Finally, there were some other minor improvements and fixes and new/updated translations.


    Developers:
    As a reminder, please keep the debug.log clean. It's only helpful if it's not as spammed as logcat. You should only use XposedBridge.log() for error messages and other unexpected situations. If everything runs fine, it shouldn't write anything to the log. If you really need to keep some logging in published builds, please use either logcat or make it an opt-in options (i.e. disabled by default and the user enables it if he runs into problems).

    Apart from that, there was a little API change: https://github.com/rovo89/XposedBridge/commit/3c18f6f6bd4e0ec57898b3b3a79b5584d0396054
    I assume that very few modules use the "extra" field to transfer information between beforeHookedMethod() and afterHookedMethod(). If you do, simply replace it by getExtra().

    Layout inflation hooks now also work if the layout has been included in other layouts. That's actually a pretty tricky use-case for the "extra" parameter mentioned about (and other tricky technologies).

    If for some reason you need to determine the active XposedBridge version in your module, you can use XposedBridge.XPOSED_BRIDGE_VERSION.

    findMethodBestMatch() now also looks for protected and package-private methods in superclasses. That's mainly useful if you use the callMethod() or callStaticMethod() helper.

    UPDATE: (beta2)
    The new beta should fix the "read-only filesystem" errors. If you used to experience them, please try this version. Otherwise, there is no need (and no advantage) to update.

    UPDATE:
    The final version is out, please use it instead (see first post / in-app installer).
    479
    The ART of patience

    Regarding ART possibly becoming the default runtime engine: I think that's good news because it means that we will get a stable version of ART then. I'm reluctant to work further on ART support at the moment for mainly three reasons:

    1. Time. I used to spend every evening and every weekend for Xposed, either to give support here (often answering the same questions again and again), writing code or researching about bugs or new ideas. As you may have noticed, there are now days or even weeks where I don't even log on to XDA, and I'm actually glad about this.

    2. Experimental software is bound to contain bugs, even severe ones. There is a reason why Google didn't make this choice available for the typical user (and keep in mind, we are not typical users). I neither want people to blame Xposed if their phone starts acting up nor do I want to hunt bugs which are caused by a runtime engine that is explicitely labelled as not finished yet.

    3. As long as ART is experimental, it's much easier to make big changes to the code. Once a final version is out and used by the masses, quality engineers we be much more careful not to break things. That means that Xposed for ART on 4.5 (or whatever it will be called) might need to be completely different than for ART on 4.4. More variants means more time for maintenance. And I don't feel like pushing something out now just to drop support again in a later version. There is not enough benefit of using ART at the moment to justify that.

    You know, I had already worked on ART support and spent several dozens of hours reading the code, looking for ways to hijack it, implementing my ideas, doing trial and error and starting again from the beginning. I finally had my Nexus 5 boot with Xposed in early December and quickly tested the App Settings module. I'm happy about that, but I also know that this was just a very experimental version, less ready than ART itself. It is totally hacked together and only tested with the stock ROM. ART is quite complex and has several different modes. It's not worth giving the current development to someone else before I have tested these things on my phone, where I can debug much better than instructing someone else to do it. It also requires rewriting app_process to be a light executable again, which loads either the Dalvik or ART Xposed library, depending on your settings. That would require changes in the installer as well, etc. etc.

    So you see, there is still lots of work to do. At the moment, I'm not actively working on it, but trying to get some other things fixed (e.g. LG ROMs) or improved (installation via recovery, better installation feedback in case root access failed, static Busybox package). And as I said, I do have other things in my life as well. It's not about money, that's what I have my full-time job for. I work on Xposed for fun (and maybe a bit for the reputation ;)), so the best way to ensure that I keep on working on it is not taking away the fun part of it. Don't pressure me like it was my duty to implement something ASAP (!!!), be patient even if it takes a bit longer until I answer and join the volunteers who help answering basic questions here so I don't have to. Thanks!
    317
    General information on Xposed has been moved to this thread: http://xdaforums.com/xposed/xposed-installer-versions-changelog-t2714053
    The FAQ has been moved to this thread: http://xdaforums.com/xposed/-t2735540
    Questions, suggestions, bug reports and so on can be posted in the Xposed General forum (for the installer/framework/development only) and in the Xposed Framework modules forum (for anything module-related).
    222
    Xposed Framework Installer (Flashable Zip)

    Announcement: Xposed Framework v2.5+ comes with an option to flash its own install zip via recovery, making my package obsolete. I'll leave them up for posterity; could be useful should the need arise for downgrading on some devices. Cheers all! 10000 downloads is pretty cool. :)

    Xposed Framework v2.2+ has fixed JB4.3 installation and v2.4+ has added support for KK4.4, but for those that still want it, or cannot install via the APK due to /system write protection like HTC's S-ON, here is an updated zip frontend method for installing the framework; now for Xposed Framework v2.4.1.

    You MUST have the Xposed Installer APK installed FIRST. The zip will detect if you do not and stop.

    Flash this in recovery and my frontend script (the update-binary) will detect the correct architecture and SDK version to use the appropriate Xposed app_process and busybox builds (x86, armv5, v6 and v7 & sdk 15 and 16+ supported), and should detect the uid of the Xposed Installer APK on-the-fly and set up the required files with it.

    It leaves a log behind in /data/local/tmp/xposed-log.txt either way with more details about how it went. :cool:

    It also unpacks Xposed-Disabler-Recovery.zip to /sdcard/ (or /sdcard/0/ if it exists) to be as close to the APK install method as possible. For those wanting another method to reactivate after a ROM update or toggle Xposed disabled/enabled, @amishxda has also created a cool "Xposed toggler" zip here.

    Note: Xposed Framework files and the install.sh used are the work of @rovo89 and @Tungstwenty; I have only created a recovery flashable zip to function as an alternative frontend for the framework installation process. I take no credit for their fantastic work.


    P.S. If you found this handy then please check out my Odds and Ends thread for more flashable goodness. :D

    5351 downloads of v2.1.4 when removed. 1049 downloads of v2.2 when removed.
    193
    Xposed 2.5 final

    This is Xposed version 2.5 (final). The main new features and fixes in this version are:
    • Rewritten framework installation/uninstallation
      • Uses interactive su (via libsuperuser) to provide improved compatibility with different Superuser apps
      • Better feedback when root access fails (doesn't freeze the app anymore)
      • Offers installation via custom recovery (CWM/TWRP), either flashing the file automatically or manually
    • Safemode to disable Xposed with hardware keys to get out of (most) bootloops
    • Compatibility with Sony/LG ROMs (4.3 and 4.4), Meizu ROMs (4.4)
    • Debug setting to disable resource hooking as a temporary workaround for incompatibilities with some theming engines (not all modules can be used in this mode)
    There are also other improvements and fixes, especially many translations updates.
    In case you get a message "Segmentation fault" during installation, you can now download an additional app which provides statically compiled versions of BusyBox (a lot bigger, but should work with every ROM). It's not needed otherwise.

    Quick explanation of the safemode: It was developed by @Tungstwenty and makes it possible to disable Xposed by repeatedly pressing one of the hardware buttons during early startup. The phone will vibrate twice when the first key press has been detected. Then you have five seconds to press the same button four more times. Each key press will be confirmed with a short vibration; the final one with a long vibration. It creates /data/data/de.robv.android.xposed.installer/conf/disabled, which prevents most of Xposed's actions (e.g. no hooks are made and no modules are loaded). There's no 100% guarantee that this will get you out of a bootloop, but in most cases it should.

    As always, you can download it via the in-app updater or from http://dl.xposed.info/latest.apk.