[2019.5.1][Magisk] Systemless Xposed v89.3/v90.2-beta3 (SDK 21-27)

Search This thread

Chainfire

Moderator Emeritus / Senior Recognized Developer
Oct 2, 2007
11,452
87,862
www.chainfire.eu
I don't run Xposed so I haven't tried anything, but aside from the points you raise yourself in the OP I have some comments:

(1) sukernel. Why are you including sukernel in the package? It should already be installed by SuperSU into /su/bin? Expect issues with this in the future.

(2) /su/lib: I see you are using both /su/lib and /su/lib64. /su/lib should be used for max-bits binaries: 32 bit on 32 bit systems, 64 bit on 64 bit systems - not 32 bit on 64 bit systems. Please use /su/lib32 and /su/lib64 instead if that fits better with your setup.
 
M

mikaere66

Guest
Systemless SU

Changelog
  • v85.1
    Fixed flash script not installing files issue
  • v85.0
    Initial release

I hope you'll excuse the nube question, but where can I find Systemless SU? I'm currently running v2.65 Pro on MM. I have NOT selected "Install SuperSU into /system" ... does that mean my setup is Systemless?

---------- Post added at 10:15 AM ---------- Previous post was at 10:09 AM ----------

I'm lazy and I didn't build Xposed from source. I hex edited the binaries to load and detect the correct files for systemless.
The arm and arm64 version is modified from Wanam's Xposed. The x86 version is modified from the official Xposed released by rovo89.

Damn! To think I was just about to install this ... I'm now glad I read the rest of the comments. It seems that there's still more work to do to make it polished. I'll keep my eye on it ... great work though =)
 

romracer

Senior Member
Apr 4, 2010
717
4,324
Kansas City
I don't run Xposed so I haven't tried anything, but aside from the points you raise yourself in the OP I have some comments:

(1) sukernel. Why are you including sukernel in the package? It should already be installed by SuperSU into /su/bin? Expect issues with this in the future.

(2) /su/lib: I see you are using both /su/lib and /su/lib64. /su/lib should be used for max-bits binaries: 32 bit on 32 bit systems, 64 bit on 64 bit systems - not 32 bit on 64 bit systems. Please use /su/lib32 and /su/lib64 instead if that fits better with your setup.

1) Easy to fix.

2) This replicates the setup already in place by Android itself on your /system partition. The libraries in /su/lib (or /system/lib in a non-systemless Xposed) are used by the 32-bit Zygote (and some of the *oat tools in /system/bin). The same is true of the libraries in /su/lib64 or /system/lib64; they are used by the 64-bit Zygote. Android has no /system/lib32 (at least my Nexus phones don't). Are you proposing the layout set forth by Android should be abandon when placing files into /su's file system?
 

masterv1

Senior Member
Dec 24, 2008
145
41
Installed it on s7 edge. Xposed is working, but I can't test if android pay is working (can't install it through play store).
When I disable xposed then all xposed apps aren't working after reboot.

Gesendet von meinem SM-G935F mit Tapatalk
 

Mr.Yawnie

Senior Member
Jun 27, 2013
2,305
3,056
Installed it on s7 edge. Xposed is working, but I can't test if android pay is working (can't install it through play store).
When I disable xposed then all xposed apps aren't working after reboot.

Gesendet von meinem SM-G935F mit Tapatalk
Of course the xposed modules are not working when xposed is disabled.. That's the definition of disabled = not usable. The option to disable xposed is there to (possibly) get android pay to work. Right now it's either or. The advantage of this systemless xposed is that it only requires quick reboot to switch between on and off, and not uninstalling whole xposed framework from system, which then causes all apps to optimize, which in turn takes time.

Sent from my GT-I9505 using Tapatalk
 
Last edited:

Chainfire

Moderator Emeritus / Senior Recognized Developer
Oct 2, 2007
11,452
87,862
www.chainfire.eu
2) This replicates the setup already in place by Android itself on your /system partition. The libraries in /su/lib (or /system/lib in a non-systemless Xposed) are used by the 32-bit Zygote (and some of the *oat tools in /system/bin). The same is true of the libraries in /su/lib64 or /system/lib64; they are used by the 64-bit Zygote. Android has no /system/lib32 (at least my Nexus phones don't). Are you proposing the layout set forth by Android should be abandon when placing files into /su's file system?

/su was created for SuperSU, what the layout is in /system is irrelevant, it was never meant to reflect /system. SuperSU installs the most-bits version of its tools (32-bits on 32-bit devices, 64-bit on 64-bit devices) in /su/bin and /su/lib. It has never made the distinction because there's always only one version installed.

I am not proposing anything. I am simply warning that this can potentially end up mixing 32-bit and 64-bit libraries in the same folder, which is a jolly bad idea, and it will at some point end up making some binary malfunction. A work-around is using lib32 and lib64 instead (or if the entire folder is going to be bound, lib32_bind and lib64_bind).
 

JohnCorleone

Senior Member
Dec 19, 2010
16,188
5,864
Whittier,CA
The x86 version has a few downloads now.
Is the x86 working as expected? Can anyone report if it works?

I am very excited that you put this together and that you have the HTC 10 (as I do) so I know that everything will work if I properly follow the steps. Are you s-off or s-on? Also did you change CID and/or MID? I am looking to keep my T-Mobile firmware (for now) because I got the 30 channel Sling TV package for $13.99 a month and I want to keep that discount! I am bone stock because I was pretty much hoping that this would come along... HUGE THANKS for your work! :cowboy:

---------- Post added at 01:15 AM ---------- Previous post was at 01:08 AM ----------

Any one test this xposed in Galaxy S7 ?
Edit.
I try on S7 and no framework loaded. ;-(

Did the developers ever get Xposed working on the S6 or S6 Edge? I am not being a smarta$$, I just remember a period where it wasn't playing nicely with Samsung's ART modifications
 
Last edited:

JohnCorleone

Senior Member
Dec 19, 2010
16,188
5,864
Whittier,CA
Hmm. How did you test? I used to get blocked by SafetyNet when I tried to add a card. Today, after deactivating Xposed and rebooting, I was able to add a card, but I haven't tried to make a purchase yet.

I'll switch to systemless Xposed the next time I update my ROM. Hopefully it will become the default install method. @rovo89 mentioned the possibility of going systemless a while ago but said he didn't plan to work on it.

Sometimes you can add a card but it won't work when you go to pay. This is as far as people got using Xposed and Root Cloak module before these new goodies came along.

---------- Post added at 01:26 AM ---------- Previous post was at 01:24 AM ----------

Nice, seems to work on LG G5..
Did you actually use Android Pay to buy something or just add the card? If you already tested paying, I am getting everything ready as soon as I get back home!
 

romracer

Senior Member
Apr 4, 2010
717
4,324
Kansas City
/su was created for SuperSU, what the layout is in /system is irrelevant, it was never meant to reflect /system. SuperSU installs the most-bits version of its tools (32-bits on 32-bit devices, 64-bit on 64-bit devices) in /su/bin and /su/lib. It has never made the distinction because there's always only one version installed.

I am not proposing anything. I am simply warning that this can potentially end up mixing 32-bit and 64-bit libraries in the same folder, which is a jolly bad idea, and it will at some point end up making some binary malfunction. A work-around is using lib32 and lib64 instead (or if the entire folder is going to be bound, lib32_bind and lib64_bind).

Sorry, I'm not trying to be obtuse, it was a genuine question. As the options for "system-less" things expands, I think these are valid questions so that we can be sure to all follow the same guidelines.

If no special meaning should be held to the layout of /system, then its no problem to use /su/lib32 and /su/lib64. Perhaps it adds additional complexity to falling back to /system/lib (when relevant) but only trivially so. I guess in hindsight SuperSU could have used /su/lib64 when appropriate, but SuperSU's implementation should be treated as a blackbox anyway (imho) so we shouldn't expect SuperSU to fit "our" patterns.

Regarding mixing libraries, can you elaborate? Is it possible for the dynamic linker to load a 32-bit library into a 64-bit binary (or vice-versa)? I've never had luck with that. Additionally, unless these /su/lib* paths are being added to every process's LD_LIBRARY_PATH, how is the linker ever going to even find them? Remember, at least for Xposed, the libraries placed there are bind mounted to /system (where the linker is actually looking).

Lastly, regarding lib32_bind and lib64_bind, are these documented anywhere? I find nothing in Google for them except for your earlier post today. They seem like what we really want anyway (at least here).
 
Last edited:

Cass67

Senior Member
Jan 19, 2010
454
52
Sometimes you can add a card but it won't work when you go to pay. This is as far as people got using Xposed and Root Cloak module before these new goodies came along.

---------- Post added at 01:26 AM ---------- Previous post was at 01:24 AM ----------


Did you actually use Android Pay to buy something or just add the card? If you already tested paying, I am getting everything ready as soon as I get back home!

Not used it yet, added card only.

Though have found an issue, after disabling xposed via toggle and rebooting it appears that the toggle has gone to re-enable xposed, installing the same framework or installer app seems not to fix it. Installer sees framework is installed but just not active.. Dunno what im missing here..

Edit - not missing anything, its a bug. Post 751 on material design installer thread describes this toggle behaviour.
 
Last edited:

RobboW

Senior Member
Jul 5, 2012
1,535
276
Forster, NSW, Australia
Installed this to my Oppo Find 7 (arm 32 bit) running OmniROM 6.0
Working nicely!
Will be interesting to apply the next full Omni update and see what survives.

I don't care about Android Pay.
 
Last edited:
  • Like
Reactions: KOLIOSIS

topjohnwu

Senior Recognized Developer / Inactive RC
Jan 31, 2012
1,849
61,431
Taipei
I don't run Xposed so I haven't tried anything, but aside from the points you raise yourself in the OP I have some comments:

(1) sukernel. Why are you including sukernel in the package? It should already be installed by SuperSU into /su/bin? Expect issues with this in the future.

(2) /su/lib: I see you are using both /su/lib and /su/lib64. /su/lib should be used for max-bits binaries: 32 bit on 32 bit systems, 64 bit on 64 bit systems - not 32 bit on 64 bit systems. Please use /su/lib32 and /su/lib64 instead if that fits better with your setup.

Thanks for the heads up! I learned a lot from your systemless SuperSU, also shamelessly "borrowed" your ramdisk patching binary to save a lot of headache unpacking/repacking boot image :D. Here I'll answer the questions

  1. The flashing script will also handle the case that /data is not able to mount, such as devices with proprietary encryption that TWRP cannot decrypt correctly. I'll create /cache/su.img if /data/su.img and /cache/su.img are both not found, and place the files over there. I this case, we cannot access the sukernel installed into su.img. Then the mount_xposed.sh should merge /cache/su.img to /data/su.img (the same thing you've done in launch_daemonsu.sh).
    What are the disadvantages including the binaries in the package? May you tell me the potential issues that might happen in the future?
  2. Just like what @romracer said, I reflected the layout of /system, so that the flashing script is easy to write. I can separate the library installing commands with their own functions, but I don't see what will really cause problems. I bind mount individual files in the folders, not mirror the whole directory into system. If you're really concerned about the issue, a better way is to put all Xposed released files into a directory, and reflect system folders as subdirectories in that folder (so I don't have to massively change my flashing script).

Again, many thanks, Chainfire :)
 

nansah

Member
Mar 31, 2015
31
3
Works great! Only the app says xposed 85.0 is installed but it's actually 85.1. Probably something you didn't edit because twrp also thought it was 85.0 [emoji2]
Did you figure a way to let it show? All the pictures I'm seeing seems to be only showing on the 64bit version but not the 32bit version like OPO......
Any thoughts?
 

topjohnwu

Senior Recognized Developer / Inactive RC
Jan 31, 2012
1,849
61,431
Taipei
Did you figure a way to let it show? All the pictures I'm seeing seems to be only showing on the 64bit version but not the 32bit version like OPO......
Any thoughts?
Nah... maybe I forgot to update xposed.prop in the arm version.
If everything is working fine for you, then it's good. v85.0 and v85.1 only differs in the flash script, the files are the same.
 
  • Like
Reactions: mati_boy and nansah

ahrion

Retired Forum Moderator / Recognized Developer
Jul 19, 2013
3,101
5,128
I already have the official xposed installed with systemless root. Can I just use the official uninstaller and then flash this? Or is there another protocol besides doing a complete wipe?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1147
    Prerequisite
    Magisk is required to be installed on your device!

    Support Devices
    All Magisk compatible devices

    Downloads
    My Xposed zip is universal across all architectures and Android versions.
    https://androidfilehost.com/?fid=1395089523397956629

    Install Guide
    • Install the XposedInstaller in the attachments
    • Follow the instructions in the Magisk release thread to install Magisk on to your device
    • Install Xposed within Magisk Manager's Download Section, or download the zip and flash in custom recovery
    • For uninstallation, remove the Xposed Magisk Module within Magisk Manager

    Systemless Xposed does not pass SafetyNet!!!

    Credits
    @rovo89 for creating Xposed

    Source
    All binaries are downloaded and repacked from either places:
    Official build from rovo89
    I did not recompile/change anything how Xposed works, the behavior should be 100% identical to original sources, if you experience any Xposed issues, please directly report to the original threads.
    221
    Changelog

    • v87.0
      - Include fix from rovo89 to prevent bootloops in the latest security patch
      - Android 5.1 (SDK 22) was broken after one Magisk upgrade, it's now Magisk version independent
    • v86.6 (Downloaded 126324 times)
      - Update to support the new repo system of Magisk
      - Fixed incompatibility of suhide
    • v86.5 (Downloaded 174328 times)
      - Update for the new API of Magisk v4
      - NOTE: In order to update to Magisk v4, you are required to uninstall Magisk completely before upgrading. Please look at the main Magisk thread for more info
    • v86.4 (Downloaded 16246 times)
      - Revert the disable to not mount method for Android Pay
      - Fixed alt version script typo
    • v86.3
      - Use Magisk as dependancy
      - Support all the way back to Android 5.0
      - Android Pay :)
    • v86.2 (Downloaded 30608 times)
      - Script updates, more info here
    • v86.1 (Downloaded 10185 times)
      - Minor fixes, release notes here
    • v86.0
      - Massive update, see release notes here
    • v85.7 (Downloaded 15774 times)
      - Hot fix for some devices which breaks proper init commands
    • v85.6
      - Add SELinux label when executing script, should fix the few devices that aren't working
      - Massively improve the script to handle /cache to /data migration (the rare case when /data isn't available in TWRP)
      - Add Pixel C support (not-tested)
      - Combine all architecture into an All-In-One flash zip, users will only need to be aware of their own Android version
    • v85.5
      - Combine image mount and bind mount into one single script, should be more reliable and cleaner, hopefully it will fix ALL previous issues ;)
      - Add more logs to boot for debugging
      - Add SDK 22 support (un-tested!!)
    • v85.4
      - The mounting method should now support all devices :)
      - The installer will now merge Xposed Image if possible, so feel free to place your own files under /xposed
    • v85.3
      - Improved compatibility for some recoveries with incorrect libraries
      - Changed the method to mount xposed.img, hopefully will fix issues on some devices
    • v85.2
      - Separate Systemless Xposed from SuperSU. It now uses it's own image in data (/data/xposed.img)
      - Won't effect SuperSU anymore. Both are now working independently
      - Massively updated flash script, should be more reliable (e.g. Prefer sukernel in su.img over bundled binary)
      - (Derived from Wanam's update) Add Huawei theming engine support (details); Ensure the recompilation on Huawei EMUI Roms (details).
    • v85.1
      - Fixed flash script not installing files issue
    • v85.0
      - Initial release
    64
    Updates!
    I slightly updated the scripts to work with the changes in Magisk v16.4.
    As you know currently I have very limited free time, I can't test everything before I went back to the military camp, that's why the latest Magisk releases are always dubbed "beta", and fixes will always take a week before I can finally touch my computer.
    Hope you can understand :)
    63
    Systemless Xposed Update!!
    Here comes the long awaited Oreo Xposed thanks to rovo89. I'm glad to see Xposed running on my Pixel XL on the latest version of Android :)
    All previous versions are also updated to use the newer templates for better support on Magisk v15+.

    BTW, the fact that the source code for v90 are not out yet I can still release systemless versions again proven that I do not recompile the binaries, all binaries are repackaged from the original sources.
    So if you face any issues, do not complain here :)
    59
    Update!
    Update Oreo builds with official v90-beta3. Hey this time I'm super fast :)