You'll need the "Widgets" dependency.
$ mkdir /path/to/src
$ cd /path/to/src
$ git clone git://github.com/phhusson/Superuser
$ cd Superuser
$ git clone git://github.com/phhusson/Widgets
These repositories do not keep the actual projects in the top level directory. This is because they contain tests, libs, and samples.
Make sure the SDK Platform for API 19 is installed, through the Android SDK Manager.
Install NDK Revision 9b from developer.android.com or use the latest and set NDK_TOOLCHAIN_VERSION=4.9
.
Make sure you have the android-ndk downloaded with the tool "ndk-build" in your path.
$ cd /path/to/src/
$ cd Superuser/Superuser
$ ndk-build
The su binary will built into Superuser/Superuser/libs/armeabi/su, and the placeholder will be built into Superuser/Superuser/libs/armeabi/placeholder
$ ./gradlew assembleDebug
(Yes I use debug builds for the moment.)
//The Superuser distributed on Google Play is in the package name com.koushikdutta.superuser. (To be changed) To prevent conflicts with the Play store version, the build process changes the package name to com.thirdparty.superuser. You can configure this value by setting the following in your build.gradle
applicationId "com.thirdparty.superuser"
You can install su in various different ways. All are not listed here.
One way is through placeholder binary. It doesn't require to modify boot.img, only system partition. This doesn't work on Android M, and is considered obsolete. (SELinux policies aren't keeping up)
To install it this way, here are the needed steps:
Please refer to https://github.com/seSuperuser/AOSP-SU-PATCH/
Please refer to https://github.com/phhusson/super-bootimg/
Here is a list of what's left to do, to be compatible with Chainfire's SuperSU (as documented at su.chainfire.eu):
Here is an additional TODO list:
This project is in REALLY early state, though some points have to be mentioned:
https://trello.com/b/adDbOmV0/superuser
I setup a robot to build rooted boot.img. The result is available at superuser.phh.me. Each boot.img is signed with the keystore at superuser.phh.me/keystore.img. Every boot.img contains the latest su and SELinux policy.
su
with the eng
option.su
without any arguments.The matching APK is available at play.google.com/store/apps/details?id=me.phh.superuser.
If you want to add some ROMs or boot.img configurations into the auto-builder, open a pull-request or create an issue at github.com/phhusson/super-bootimg/tree/master/known-imgs.