Skip to content

Magisk support #207

Closed
Closed
@assiless

Description

@assiless

Activity

zhouziyang

zhouziyang commented on Aug 4, 2022

@zhouziyang
Member

several guys requested the Magisk support. And I will look into this feature request. Stay tune~~

BTW, SELinux is ignored in redroid; thus the policy related ops are not needed here.

self-assigned this
on Aug 4, 2022
changed the title [-]my attempt integrating magisk[/-] [+]Magisk support[/+] on Aug 8, 2022
zhouziyang

zhouziyang commented on Aug 8, 2022

@zhouziyang
Member

image

## manually get a working Magisk on redroid12
## kind busy these days. will add magisk support in redroid building process later.

# add /sbin
/sbin/
├── magisk
└── stub.apk

# add busybox
/data/adb/
├── magisk
│   └── busybox

# add su (override `/system/xbin/su`)
/product/bin/
└── su -> /sbin/magisk

# add init.rc
cat /vendor/etc/init/redroid.magisk.rc
service magisk-d /sbin/magisk --daemon
    user root
    oneshot

on boot
    start magisk-d

on post-fs-data
    start logd
    rm /dev/.magisk-unblock
    start s1
    wait /dev/.magisk-unblock 5
    rm /dev/.magisk-unblock

service s1 /sbin/magisk --post-fs-data
    user root
    oneshot

service s2 /sbin/magisk --service
    class late_start
    user root
    oneshot

on property:sys.boot_completed=1
    exec /sbin/magisk --boot-complete

on property:init.svc.zygote=restarting
    exec /sbin/magisk --zygote-restart

on property:init.svc.zygote=stopped
    exec /sbin/magisk --zygote-restart
zhouziyang

zhouziyang commented on Aug 9, 2022

@zhouziyang
Member

This is a quick setup (possible not elegant, try refine by yourself)

please i need some info

#add /sbin

do find /sbin -exec ls -dlh {} \;
many busybox symlinks under .magisk directory (magisk automatically setup). ignored here

#add busybox

do find /data/adb -exec ls -dlh {} \;

drwx------ 6 root root 4.0K 2022-08-08 03:42 /data/adb
drwxr-xr-x 2 root root 4.0K 2022-08-05 12:16 /data/adb/service.d
-rw------- 1 root root 40K 2022-08-05 12:16 /data/adb/magisk.db
drwxr-xr-x 2 root root 4.0K 2022-08-05 12:16 /data/adb/modules
drwxr-xr-x 2 root root 4.0K 2022-08-05 12:16 /data/adb/post-fs-data.d
drwxr-xr-x 2 root root 4.0K 2022-08-08 03:37 /data/adb/magisk
-rwxr-xr-x 1 root root 2.0M 2022-08-08 03:37 /data/adb/magisk/busybox

#add su (override /system/xbin/su)

do ls -lh /system/xbin/su do which su
/product/bin/su

#add init.rc

do ls -lh /vendor/etc/init/redroid.magisk.rc do cat /vendor/etc/init/redroid.magisk.rc
already pasted above

zhouziyang

zhouziyang commented on Aug 9, 2022

@zhouziyang
Member

you can add stub.apk in docker image (will be there after each launch, and get removed after boot).

zhouziyang

zhouziyang commented on Aug 10, 2022

@zhouziyang
Member

I use locally build magisk (open some debug logs).

check logcat --pid <pid of magiskd>
check logcat --pid <pid of magisk-app>

# enable magisk app shell verbose logs

diff --git a/app/src/main/java/com/topjohnwu/magisk/core/App.kt b/app/src/main/java/com/topjohnwu/magisk/core/App.kt
index 1c300b7c5..18ce93f1e 100644
--- a/app/src/main/java/com/topjohnwu/magisk/core/App.kt
+++ b/app/src/main/java/com/topjohnwu/magisk/core/App.kt
@@ -54,6 +54,7 @@ open class App() : Application() {
         ServiceLocator.context = base
         app.registerActivityLifecycleCallbacks(ActivityTracker)

+        Shell.enableVerboseLogging = true;
         Shell.setDefaultBuilder(Shell.Builder.create()
             .setFlags(Shell.FLAG_MOUNT_MASTER)
             .setInitializers(ShellInit::class.java)
zhouziyang

zhouziyang commented on Aug 11, 2022

@zhouziyang
Member

try with adb shell; adb connect ... then adb -s xxx shell

zhouziyang

zhouziyang commented on Aug 11, 2022

@zhouziyang
Member

adbd help to setup some environment variables (check /init.envrion.rc), while docker exec ... not.

zhouziyang

zhouziyang commented on Aug 11, 2022

@zhouziyang
Member

you can create (mkdir) by your own.

zhouziyang

zhouziyang commented on Aug 11, 2022

@zhouziyang
Member

I'm not provide you the complete solution to integrate Magisk here. Just a working PoC here. hopefully, you can follow this guide to enhance this solution.

For Magisk initial setup, possible to add a magisk-setup.rc and copy blobs to the desired folders.

redroid is very easy to customize, have fun~~

51 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @Lua12138@ilaipi@zhouziyang@baohavan@Darkglassd3v

        Issue actions

          Magisk support · Issue #207 · remote-android/redroid-doc