Related
General information on Xposed has been moved to this thread: http://forum.xda-developers.com/xposed/xposed-installer-versions-changelog-t2714053
The FAQ has been moved to this thread: http://forum.xda-developers.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).
Sounds interesting.I hope that you make a apk that simplifies things for simple user like rom control in AOKP
Keep up the good work my friend
That's great, decompiling/compiling apks is not really my cup of tea lol thanks rovo89
May be useful for my themes, keep working on it
Very interesting... Will try soon.
This looks like a really great idea and could help reduce the need for dev's being pestered by users for mod's every time a new rom is leaked/released, well done sir, hope to see this take off
I will definitely have a swing at this over the next few days. This looks like fun!
**This message will self-destruct**
Thanks for the "thanks" everyone. I decided to create an installer first before looking into the other things. This way, I hope a few people can test whether it works on their device (see first post for the APK).
Some notes about this:
The installer holds the app_process executable and the XposedBridge.jar as assets and can install it to the correct locations (root permissions required!).
It will automatically create a backup of /system/bin/app_process at /system/bin/app_process.orig, which can be restored either via the app or via shell (e.g. adb, works in recovery as well).
I have only tested it on ICS (LPQ Stock). Honestly, I do not have the time to test it with anything below that. If somebody wants to do this, I can help you to get started with the code. app_process was not changed very often, so chances are rather good that it will work with only few changes.
The installer requires SDK15 (4.0.3) for the same reason.
Improvements for any part of the code are welcome! It should be easy to use for both users and developers.
(Un-)Installing the installer app alone does not change anything (at least not now). Please use the buttons inside the app.
The next step should now really be to load modules dynamically, I hope I can use standard installable APKs for that (although the framework will probably request enabling confirmation for technical and security reasons).
siberian tiger said:
I hope that you make a apk that simplifies things for simple user like rom control in AOKP
Click to expand...
Click to collapse
From what I read, Rom Control seems to be something like the Settings app for ROM-specific stuff? I am not so sure yet whether I want to implement generic settings in the framework.
Having a standard interface for setting loading/saving (like or using Android's Shared Preferences) would probably make sense. But the settings themself can be very different from module to module, so I would rather let those bring their own settings menus.
What I did though was to implement an installer. My idea how it should ideally work for end users:
Install the Xposed Installer
Click the "Install/Update" button in the installer
Install one or more modules
Configure the modules (if necessary)
Have fun!
Where "install" would mean that you can download the app from the Play Store or a website and install it with the usual package manager. At least for steps 1 and 2, this is working already. For the others, I have to see.
Dynamic module loading is implemented now as well. Modules are normal apps with a special metadata tag and an asset describing which classes to load. You can look at my modifications for examples how this works. I think it is quite simple to develop and use.
I feel that Xposed is quite stable right now. It should be very easy to install both the framework and the modules without any knowledge about modding.
Also for developers, creating a new module is not too complicated. If anyone wants to give it a try, I'm happy to help you getting started. I'm convinced that Xposed is great alternative to APK modifying, but it will not work without developers creating modules for it.
Speaking of modules, I have published one for the famous CRT off effect: http://forum.xda-developers.com/showthread.php?t=1583963
The source code is also available at Github. See how it has less than 40 lines (and only about 10 LOC)? I think that this is awesome!
I was not able to install it as normal app hence pushed them to system/app using root explorer.
It works perfectly on XXLPS SENSATION ROM ICS V 3.2
Sent from my GT-I9100 using Tapatalk
OK you got me interested
What is currently holding me back is a lack of "documentation" about how to go about doing things...
Is there any reference info (even source code comments) that I should have a read of?
Or perhaps a little worked-through guide as to how you made the screen-off or red-clock one, complete with the "thinking" behind it all, just to learn the thought process.
This seems potentially hugely useful for me, just need to know what it can do!
Diliban said:
I was not able to install it as normal app hence pushed them to system/app using root explorer.
Click to expand...
Click to collapse
Really? Oh. Did you get any error message? I assume you have allowed installation of non-market apps?
@pulser_g2: Feedback taken! Until now, I focused on bringing Xposed to a level where it is actually doing something useful for end-users.
As there are some steps that can not be documented easily in the source code (e.g. how you mark an app as Xposed module), I will recreate a tutorial how you can create the clock example. I will try to give many details not only what to do, but also how you can know that you need to do this.
TUTORIAL - How to create an Xposed module
The tutorial has been moved to https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
this is one of the most amazing projects made lately.
You are unleashed the best way to handle mods and possible some hacks.
very great work, robo89
Great concepts mate. Very powerful.
Wouldnt this also expose a device to malicious coders?
If a device has this implemented then is it possible that a simple theme could contain something nasty.
Not trying to stop progress of this project just throwing this out there for consideration.
----------------------
GTI9100 KK5
aceofclubs said:
Wouldnt this also expose a device to malicious coders?
If a device has this implemented then is it possible that a simple theme could contain something nasty.
Not trying to stop progress of this project just throwing this out there for consideration.
Click to expand...
Click to collapse
This is an absolutely valid thought.
In a way: Yes, it is easier to do something malicious with this. With great power comes great risk. The thing is: How would you prevent that? I couldn't think of any way once a module has been loaded, because a) how do you identify something malicious and b) how can you block it when it could just circumvent the security measure taken?
So what I did was to require that you enable a newly installed module in the installer. This at least avoids that you install any normal app and it contains a hidden Xposed module.
And not trying to play this question down, but you could insert malicous code in a theme also when you post a new framework.jar or SystemUI.apk. You could just change the smali code, compile it and you have similar power. For example, modifiying the constructor of the Activity class would also get you into any app and you could as well do whatever you want. You wouldn't even find these modifications because of the hundreds of classes in the Android framework. In this point, Xposed modules are easier to check, because they will usually contain just one class with very few and short methods.
Or take Superuser. Yes, it is asking you every time whether you want to execute this command. But the command can as well be a script that could replace files as the root user. Same for the kernel. In any case, when you modify anything in your phone, there is a risk that it is malicous.
As I said, I'm not denying that there could be a misuse of this project. But I do not see a chance to prevent it without blocking even simple real-life modifications. If anybody has ideas, please let me know.
rovo89 said:
This is an absolutely valid thought.
In a way: Yes, it is easier to do something malicious with this. With great power comes great risk. The thing is: How would you prevent that? I couldn't think of any way once a module has been loaded, because a) how do you identify something malicious and b) how can you block it when it could just circumvent the security measure taken?
So what I did was to require that you enable a newly installed module in the installer. This at least avoids that you install any normal app and it contains a hidden Xposed module.
And not trying to play this question down, but you could insert malicous code in a theme also when you post a new framework.jar or SystemUI.apk. You could just change the smali code, compile it and you have similar power. For example, modifiying the constructor of the Activity class would also get you into any app and you could as well do whatever you want. You wouldn't even find these modifications because of the hundreds of classes in the Android framework. In this point, Xposed modules are easier to check, because they will usually contain just one class with very few and short methods.
Or take Superuser. Yes, it is asking you every time whether you want to execute this command. But the command can as well be a script that could replace files as the root user. Same for the kernel. In any case, when you modify anything in your phone, there is a risk that it is malicous.
As I said, I'm not denying that there could be a misuse of this project. But I do not see a chance to prevent it without blocking even simple real-life modifications. If anybody has ideas, please let me know.
Click to expand...
Click to collapse
It is so refreshing to see someone take such a mature approach as this.
I greatly appreciate your time on that tutorial, and I will take a proper read through it while working it out myself later... (on vacation right now, this seems like a good thing to try if it rains )
Regarding security, I guess you could add a way to protect WHAT was being edited... Such that your package needed to declare edit access to package X and Y, and if it doesn't have permission, it can't do it... This way, if I want to interfere in Gmail, the user must agree, and he/she will say "well... Why is my no battery sound tweak touching gmail?" But this obviously doesn't help for frameworks and services where they are all in the one file... :/
pulser_g2 said:
Regarding security, I guess you could add a way to protect WHAT was being edited... Such that your package needed to declare edit access to package X and Y, and if it doesn't have permission, it can't do it... This way, if I want to interfere in Gmail, the user must agree, and he/she will say "well... Why is my no battery sound tweak touching gmail?" But this obviously doesn't help for frameworks and services where they are all in the one file... :/
Click to expand...
Click to collapse
Maybe.. I could rather easily implement something in hookMethod that checks the method to be hooked against a whitelist defined in an asset in the module (which could of course contain wildcards). Then when you enable a module, I could display this whitelist, with a warning if it includes some very central classes/packages/methods (but how to create such a list?).
However, this cannot control the following:
What you do inside the handling method. If you change anything in SystemUI (and that might be only the battery icon or the clock color), this method will be executed in the context of the SystemUI, which has a large set of Android standard permissions.
Calling any methods of the framework and modifying any available variables, as this can be done via standard reflection.
Basically anything that is not handled through XposedBridge, but using standard techniques.
Wanted to install the framework, but i am getting:
sh: /data/data/de.robv.android.xposed.installer/cache/install.sh: no such file or directory
What am i doing wrong ?
is there anyway to root or jailbreak the lumia 521?
only had it for one day and i hate it.. anyone find a root or jailbreak?
1) Learn to search.
2) Not yet (duh, if you'd searched you'd know).
3) Why the heck did you get a phone without doing even basic research?
4) Is there something *specific* you want to do? There are some tricks possible with stock dev-unlock.
All of the above and what do you think your going to be able to do once its "broken" ...there's not a lot really hidden from you at the moment. One of the beauties of WM is there's practically no real need to root it or at least no huge gain atm.
Sent from my RM-878_nam_usa_100 using Tapatalk
Oh, I *quite* disagree with that last statement. Things that I've done, even with the limited control available right now:
Moved the map data folder to the SD card.
Made my ATIV S show three normal tile columns on Start.
Been able to sideload more than 10 applications at once (and 10 is the limit for a paid account; free ones get 2 or 3).
Been able to directly sideload my ebooks.
Make an app to enable wired tethering on my phone (isn't limited like WiFi tethering, which doesn't work for me anyhow... another thing I hope to fix, though).
Set up custom theme colors.
Access the certificate store.
Edit the HOSTS file.
Add IE favorites easily.
There's a ton more that I'm still investigating, too:
Changing file associations, even ones that are supposed to be locked to built-in apps (like .MP3).
Custom system components (replace or modify the keyboard or Start screen).
Port Win32 programs, even ones that require drivers such as openvpn.
Change the default search engine.
Make the ringtone volume controllable separately from the system volume.
Toggle services on and off with one tap.
Enable raw network sockets (support other protocols than TCP and UDP, do security testing from my phone, etc.)
Lots more...
GoodDayToDie said:
Oh, I *quite* disagree with that last statement. Things that I've done, even with the limited control available right now:
Moved the map data folder to the SD card.
Made my ATIV S show three normal tile columns on Start.
Been able to sideload more than 10 applications at once (and 10 is the limit for a paid account; free ones get 2 or 3).
Been able to directly sideload my ebooks.
Make an app to enable wired tethering on my phone (isn't limited like WiFi tethering, which doesn't work for me anyhow... another thing I hope to fix, though).
Set up custom theme colors.
Access the certificate store.
Edit the HOSTS file.
Add IE favorites easily.
There's a ton more that I'm still investigating, too:
Changing file associations, even ones that are supposed to be locked to built-in apps (like .MP3).
Custom system components (replace or modify the keyboard or Start screen).
Port Win32 programs, even ones that require drivers such as openvpn.
Change the default search engine.
Make the ringtone volume controllable separately from the system volume.
Toggle services on and off with one tap.
Enable raw network sockets (support other protocols than TCP and UDP, do security testing from my phone, etc.)
Lots more...
Click to expand...
Click to collapse
I was trying to find the practicality on doing it for WP8, but I couldn't recall exactly what all was added feature wise on WP7. This kind of clears things up why InteropUnlock is so valuable.
let me start off by saying that the xposed framework is absolutely awesome but if you've noticed recently just the amount of modules have just gotten a bit unruly I suggest adding some sort of tag system to help organize all the modules
for example some the tags could be device specific modules, type of module, android version etc.
ie. I would disable any tags with sense or touchwiz because I do not on that device and those modules wouldn't work on my device
This is a frequently suggested feature and I think it's valid, but everytime I asked for someone to develop this idea further, replies stopped...
Before thinking about an implementation, it's necessary to find out which kind of categorization makes sense for most modules. There are more than 350 of them now and many of them have different requirements and purposes. Tags make only sense if they are understood and used consistently. Just giving developers the choice to create and assing tags won't work, there need to be clear guidelines, ideally even a predefined set of tags. These guidelines need to be drafted by someone, but I'm too busy to do the major work of it. If some people want to volunteer to analyse the existing modules, look for similarities (and differences) between modules, assign tags to them to get a feeling what's needed and propose guidelines, be my guest. You can use this thread for discussion and coordination.
Just to give you some examples which this isn't trivial:
- Some modules work for basically every ROM and devices.
- Others just work on certain ROMs on certain devices (the device alone is rarely a limiting factor).
- Others will work on a certain type of custom ROM (e.g. CyanogenMod-based) on different devices, but sometimes there might be a version limitation.
- Some modules can work on Sense and TouchWiz - so if you hide all TouchWiz modules, but want to see Sense modules, special filter logic is required.
- Some modules target a certain app.
That's just the works-or-not section, which I suggest to start with. Purposes of modules are even more segmented.
rovo89 said:
This is a frequently suggested feature and I think it's valid, but everytime I asked for someone to develop this idea further, replies stopped...
Before thinking about an implementation, it's necessary to find out which kind of categorization makes sense for most modules. There are more than 350 of them now and many of them have different requirements and purposes. Tags make only sense if they are understood and used consistently. Just giving developers the choice to create and assing tags won't work, there need to be clear guidelines, ideally even a predefined set of tags. These guidelines need to be drafted by someone, but I'm too busy to do the major work of it. If some people want to volunteer to analyse the existing modules, look for similarities (and differences) between modules, assign tags to them to get a feeling what's needed and propose guidelines, be my guest. You can use this thread for discussion and coordination.
Just to give you some examples which this isn't trivial:
- Some modules work for basically every ROM and devices.
- Others just work on certain ROMs on certain devices (the device alone is rarely a limiting factor).
- Others will work on a certain type of custom ROM (e.g. CyanogenMod-based) on different devices, but sometimes there might be a version limitation.
- Some modules can work on Sense and TouchWiz - so if you hide all TouchWiz modules, but want to see Sense modules, special filter logic is required.
- Some modules target a certain app.
That's just the works-or-not section, which I suggest to start with. Purposes of modules are even more segmented.
Click to expand...
Click to collapse
For the Xposed modules index thread, I'm using 9 categories to separate modules by their function, and additional tags for modules that are specific to an Android version or vendor.
If you find that that makes sense and if you'd like to use it, I can share a CSV file (which is easily usable with Python, which is why I picked it) that should have the necessary info to easily add it to your server's data "automatically" (by writing a hopefully short script) (fields include, among others: tags and package name for each module).
I realize this needs discussion and will take a good amount of time and effort, but I'm just offering the index right now should you want to take a look at it. Also, if you think I/the community can make your life easier by categorizing modules with additional tags, I'm sure many will step up to help.
That is so kind of you! Thats awesome
I will also say that I wasn't very clear. (What it became is way awesome)
I meant only like an automatic way to get ones that won't work with my device to be hidden
My scenario for this was I have an aosp gpe tablet. And when I'm brousing modules I don't want to scroll past 6 experia mods that don't apply to me.
I am using a hm-10 to connect to my Android test application. Unfortunately, is a big struggle compared to the hc-05 device. Anyway. The "samplegatt" does not work, either with my device or for whatever reason. So I found a different blog that explains the sample must be modified:
(the dumb forum won't allow me to post a link)
ayh tee tee pee android-er.blogspot.com/2015/12/connect-hm-10-ble-module-to-android.html?showComment=1454055306623#c9017603593836048433
So after the modifications, THAT won't work either. It's not the first one, just the most recent.... I have tried so many example applications from google searching, I have saturated my efforts. I KNOW the module can work with my phone, from using a ble test application from play store (that I can't seem to find company website or track down the source code for).
I was hoping to know if anyone else struggled with this, and if you can advise me on how / where to get a working sample application.
It turns out, the new changes for sdk version 23 require all types of permission changes in the code, since someone decided it was a good idea to enable gps location in order to use bluetooth. I had to change my target sdk back to 22 and the samples started working.
With Google play music going away soon, the community would definitely benefit from a module for YouTube Music (not YouTube).
Requested features, at least from my point of view would be background and ad free playback in the YouTube music section (this already exists in the uploaded music section), improved search in the uploaded section and that the search defaults to the tab it originated in (search in uploaded music, search results show in uploaded tab, not YT music tab). And maybe other small improvements.
Please post here if you would like a module like this. Considering how broken YTM is compared to Google Play Music, it would be welcomed.
I doubt how could someone benefit out of this idea.
My guess is that you're making a basic mistake here, you can't just achieve functions nor improve an app (that requires a paid subscription) by simply adding it to another partiton through a module or giving root permission to it... It won't make any real difference.
If you're taking the Vanced mod into account, don't, because Vanced is a completely different situation, it's a modified version of the original app and the only benefit of it being a module or installed using root was that the app could replace the original YouTube app systemlessly, they could use the repository to distribute the module easier, and you could login without the microg thing (in fact, the module is now deprecated in favor of their own manager apk). And you can also install the non-root version, which works exactly the same as the root one ?
So, in short, no it's not as simple as that. Unless someone is interested in modifying that app directly (similar to Vanced). You should be asking for an apk mod, not a module...
abacate123 said:
I doubt how could someone benefit out of this idea.
My guess is that you're making a basic mistake here, you can't just achieve functions nor improve an app (that requires a paid subscription) by simply adding it to another partiton through a module or giving root permission to it... It won't make any real difference.
If you're taking the Vanced mod into account, don't, because Vanced is a completely different situation, it's a modified version of the original app and the only benefit of it being a module or installed using root was that the app could replace the original YouTube app systemlessly, they could use the repository to distribute the module easier, and you could login without the microg thing (in fact, the module is now deprecated in favor of their own manager apk). And you can also install the non-root version, which works exactly the same as the root one ?
So, in short, no it's not as simple as that. Unless someone is interested in modifying that app directly (similar to Vanced). You should be asking for an apk mod, not a module...
Click to expand...
Click to collapse
Considering it's going to replace Google Play Music, yes I think it deserves a module, and as much attention as the Vanced team gives its app. I find it strange you think I'm making a "mistake" in asking for a module (call it an app, call it a module, it's a modded version of the original, however we get there) that thousands of people would appreciate. If a module is not the right term, that's fine. This forums is a good place to start though since I have seen a lot of threads asking for something like this even though GPM is still alive. When it dies, it would be very welcome by the community I'm sure.
xgerryx said:
Considering it's going to replace Google Play Music, yes I think it deserves a module, and as much attention as the Vanced team gives its app. I find it strange you think I'm making a "mistake" in asking for a module (call it an app, call it a module, it's a modded version of the original, however we get there) that thousands of people would appreciate. If a module is not the right term, that's fine. This forums is a good place to start though since I have seen a lot of threads asking for something like this even though GPM is still alive. When it dies, it would be very welcome by the community I'm sure.
Click to expand...
Click to collapse
Did you ignore the part where I said that it makes no difference at all to use it as a module or simply install as a normal apk and the differences btw them, also the comparison? The mistake I mentioned is that you're asking for an apk mod, not a module. That's it.
About the idea, yes I agree with you, it'd be useful (as long as it's not considered against the rules or there are some law problems implied, Idk).
I'm dreading this forced migration from Play Music to YT Music. For years now I've had the last remaining copy of my entire digital music library collected over the years, with a ton of remixes, singles, alternate versions, radio talk, random sound bites, extremely old and obscure audio files which are very likely impossible to ever find anywhere online these days. All just saved on GPM cloud. I'm absolutely dreading the change to YTMusic will be an opportunity for Google to delete entire swaths of audio files that don't fit into their sanitized Billboard commercial record label-approved cookie cutter whitelist, reducing the tens of thousands of tracks down to whatever YouTube recognizes only.
This may not be the right place to ask, but regarding a method to preserve our GPM music libraries, is there such a mod or modded apk that may help with this? I know back in the day there were mass downloader programs for desktop systems but that's no longer an option. And i very much doubt there will be an easy way to transfer such a huge library to another cloud service, even if just as basic file storage and not music oriented.