GithubHelp home page GithubHelp logo

luigivampa92 / systemedxposed Goto Github PK

View Code? Open in Web Editor NEW
35.0 9.0 12.0 21.62 MB

Builds a TWRP compatible zip that installs EdXposed framework straight to system partition without installing root tools

License: GNU General Public License v3.0

Kotlin 39.60% Java 11.77% Shell 6.97% Python 1.79% Makefile 0.39% C++ 38.54% C 0.95%
edxposed twrp android lineageos xposed-framework edxposed-framework xposed twrp-zip zip magisk

systemedxposed's Introduction

System EdXposed

This is a script that builds a TWRP zip file that installs EdXposed framework (YAHFA) on your device straight to /system partition.

The main goal is to be able to use EdXposed without flashing Magisk and installing Riru-Core and Riru-EdXposed magisk-modules.

This approach does not require you to root your device at all. It also makes it possible to lock your device bootloader with custom ROM installed on devices that support it (I did so on my OnePlus 5T).

I personally believe that flashing magisk or root greatly decreases your device security in cases when someone can physically get your device. Root increases attack surface a lot when it comes to getting your personal data from your device. There are a bunch of tools that can collect data from your device and all of them work via adb or as apps and can call su binary. If someone wants to analyze your device with forensic tools nothing can be better for him than a root. Xposed, however, does not give such advantages to a physical forensic attacker but provides a number of tools for you to harden your device against privacy leaks and protect your data.

This build also does not rely on any magisk configs embedded in /data partition so you will not have any troubles when you make a factory reset of your device. Wipe your /data partition as much as you wish, EdXposed will do just fine

Install

Build.sh uses 7zip, so you have to install 7z from apt/brew/whatever before running the build

  • Use build.sh to make a zip file.

You have to set required architecture and SELinux mode for the build script. Only ARM architecture supported: 32-bit (armeabi-v7a) and 64-bit (arm64v8a). This script can not make a build for x86/x86_64 though it is not technically impossible.

Example: ./build.sh arm64 enforcing

  • Flash the result zip with TWRP
  • Reboot to system
  • Install EdXposedManager app. You can get it here
  • Enjoy EdXposed !

Direct download:

Uninstall

Use this to properly uninstall System EdXposed

Direct download:

Restrictions

Unfortunately, this "system" version of EdXposed can be installed only on ROMs that have init.d support.

EdXposed requires modification of SELinux policies in order to work. This policies must be applied before loading of EdXposed framework or SELinux must be switched to permissive mode before loading of EdXposed framework, otherwise your system will fall into a bootloop.

Riru-EdXposed magisk module applies required policies at boot time. Magisk replaces original init with its own and can do such things. It injects sepolicy patch for EdXposed during boot process and everything works great.

When we want to do the same trick without Magisk we have to patch sepolicy rules strictly before start of any app process which means we cannot make it on something like BOOT_COMPLETE event, only during system boot. The best option of course is to make your own ROM build and simply include necessary sepolicy rules in .te file at build time. Unfortunately I was not able to make a .rc script that will run during system boot because I could not execute binary that was not approved to be executed during init by SELinux policies defined at build time. To be honest, I do not think it is possible at all. For a simple flashable zip the only practical way is to make it in init.d script. The problem that not many ROMs have init.d support. I tested it on LineageOS 16 (Android 9) and everything worked fine, because LineageOS has init.d support, but most stock ROMs don't

Links:

https://github.com/ElderDrivers/EdXposed

https://github.com/ElderDrivers/EdXposedManager

systemedxposed's People

Contributors

luigivampa92 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

systemedxposed's Issues

Miss Prop?

form system.prop

dalvik.vm.dex2oat-filter=quicken
dalvik.vm.dex2oat-flags=--inline-max-code-units=0
#dalvik.vm.image-dex2oat-flags=--inline-max-code-units=0 --compiler-filter=speed

System Lsposed

Hi
thank you for making a system zip
and i wonder if you can make the same (system zip) for Lsposed ( https://github.com/LSPosed/LSPosed )
it use less ram than edxposed and the way it work is very good

and thank you so much

Manual install on Android Car Navi (Android 10 prerooted, no TWRP, no init.d, but SELinux permissive)

Hello and thanks for your great project!
I want to install edxposed on my car navi running Android 10 with built in root access (supersu, or very similar tool, not magisk).
Unfortunately there is no easy way to install magisk on this unit, nor TWRP.
So I cannot install edxposed through magisk nor through TWRP with zip files from your project.

I carefully read this thread: ElderDrivers/EdXposed#532
and install script from zip from this project and realized, that install process is pretty easy, so tried to do it manually from running system.
As a result - system boots ok, but edxposed manager (4.6.2) tells that "framework is not (properly) installed" and shows red status.

Here is what I exactly did:

  1. In terminal entered su command, and then getenforce - it reported "permissive". So I realized that SELinux is already in permissive state and probably I don't need init.d support in ROM (am I correct?)

  2. Downloaded this zip: https://github.com/LuigiVampa92/System_EdXposed_install/releases/download/v0.4.6.2/zip_system_edxposed_v0462_arm64_permissive.zip

  3. remounted system partition with rw option, renamed libmemtrack.so in /system/lib and /system/lib64 to libmemtrack_real.so

  4. copied following files from zip to corresponding folders in /system:
    system\framework\edconfig.jar
    system\framework\eddalvikdx.jar
    system\framework\eddexmaker.jar
    system\framework\edxp.jar
    system\lib\libmemtrack.so
    system\lib64\libmemtrack.so
    system\lib\libriru_edxp.so
    system\lib64\libriru_edxp.so
    system\lib\libwhale.edxp.so
    system\lib64\libwhale.edxp.so
    system\bin\zygote_restart

  5. checked ownership for all copied files - it was all root:root, so I didn't need to change anything

  6. set chmod 700 to zygote_restart, 644 to all copied libs (including renamed libmemtrack_real.so) and jars.

  7. i DIDN'T copy /bin/espf because I think permissive version of your installer script does not use it (correct?) and i DIDN'T copy 07slf script to init.d, because there is no such folder in etc in my ROM, but I think I do not need it, cause my ROM is already in "permissive" state (correct?).

  8. reboot successfull with no bootloops etc, but nothing changed, edxposed manager shows red status ("framework is not (properly) installed"). I checked that after reboot all copied files remained in place where they should be.

  9. also tried to check selinux contexts for copied\renamed files with ls -Z command. Files bin/zygote_restart and jars in framework folder showed correct context "u:object_r:system_file:s0", so I didn't need to change them. But copied libs in lib and lib64 folders (including renamed libmemtrack_real.so) showed "u:object_r:system_lib_file:s0" as all other libs in these folders. I tried to change them to "u:object_r:system_file:s0" with chcon command, but after reboot I realised it didn't help.

  10. I also tried to create /system/etc/init/riru.rc as mentioned in this thread: ElderDrivers/EdXposed#532
    to start zygote_restart service, but it also didn't help (of cource I set ownership and permissions same way as other files in init folder).

  11. Also tried to check Riru status - Riru apk tells that riru is not installed or version below 21.

  12. i DIDN't edit props file to add dalvik.vm.dex2oat-filter and dalvik.vm.dex2oat-flags flags, as I have read it is not needed in Issues section of this project (correct?).

Any ideas? Thanks in advance

System xposed manager?

Hi pls consider make system xposed too as system edxposed won't work on android 7 especialy on vmos pro thanks 🙏

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.