Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
Magisk
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Magisk
Commits
ad0e6511
Commit
ad0e6511
authored
Oct 31, 2022
by
vvb2060
Committed by
John Wu
Dec 27, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Stop embedding stub.apk in magiskinit
parent
a4a73445
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
55 additions
and
79 deletions
+55
-79
MagiskInstaller.kt
...n/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt
+1
-1
build.py
build.py
+0
-15
Setup.kt
buildSrc/src/main/java/Setup.kt
+38
-44
embed.hpp
native/src/base/include/embed.hpp
+0
-2
init.cpp
native/src/init/init.cpp
+0
-10
init.hpp
native/src/init/init.hpp
+0
-1
rootdir.cpp
native/src/init/rootdir.cpp
+8
-1
avd_magisk.sh
scripts/avd_magisk.sh
+1
-2
avd_patch.sh
scripts/avd_patch.sh
+4
-2
boot_patch.sh
scripts/boot_patch.sh
+3
-1
No files found.
app/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt
View file @
ad0e6511
...
...
@@ -131,7 +131,7 @@ abstract class MagiskInstallImpl protected constructor(
}
// Extract scripts
for
(
script
in
listOf
(
"util_functions.sh"
,
"boot_patch.sh"
,
"addon.d.sh"
))
{
for
(
script
in
listOf
(
"util_functions.sh"
,
"boot_patch.sh"
,
"addon.d.sh"
,
"stub.apk"
))
{
val
dest
=
File
(
installDir
,
script
)
context
.
assets
.
open
(
script
).
writeTo
(
dest
)
}
...
...
build.py
View file @
ad0e6511
...
...
@@ -309,13 +309,7 @@ def binary_dump(src, var_name, compressor=xz):
def
dump_bin_header
(
args
):
stub
=
op
.
join
(
config
[
'outdir'
],
f
'stub-{"release" if args.release else "debug"}.apk'
)
if
not
op
.
exists
(
stub
):
error
(
'Build stub APK before building "magiskinit"'
)
mkdir_p
(
native_gen_path
)
with
open
(
stub
,
'rb'
)
as
src
:
text
=
binary_dump
(
src
,
'manager_xz'
)
write_if_diff
(
op
.
join
(
native_gen_path
,
'binaries.h'
),
text
)
for
arch
in
archs
:
preload
=
op
.
join
(
'native'
,
'out'
,
arch
,
'libinit-ld.so'
)
with
open
(
preload
,
'rb'
)
as
src
:
...
...
@@ -432,11 +426,6 @@ def build_app(args):
build_apk
(
args
,
'app'
)
def
build_stub
(
args
):
header
(
'* Building the stub app'
)
build_apk
(
args
,
'stub'
)
def
cleanup
(
args
):
support_targets
=
{
'native'
,
'java'
}
if
args
.
target
:
...
...
@@ -554,7 +543,6 @@ def patch_avd_ramdisk(args):
def
build_all
(
args
):
build_stub
(
args
)
build_binary
(
args
)
build_app
(
args
)
...
...
@@ -582,9 +570,6 @@ binary_parser.set_defaults(func=build_binary)
app_parser
=
subparsers
.
add_parser
(
'app'
,
help
=
'build the Magisk app'
)
app_parser
.
set_defaults
(
func
=
build_app
)
stub_parser
=
subparsers
.
add_parser
(
'stub'
,
help
=
'build the stub app'
)
stub_parser
.
set_defaults
(
func
=
build_stub
)
avd_parser
=
subparsers
.
add_parser
(
'emulator'
,
help
=
'setup AVD for development'
)
avd_parser
.
add_argument
(
'-s'
,
'--skip'
,
action
=
'store_true'
,
...
...
buildSrc/src/main/java/Setup.kt
View file @
ad0e6511
...
...
@@ -15,8 +15,7 @@ import org.gradle.api.tasks.Copy
import
org.gradle.api.tasks.Delete
import
org.gradle.api.tasks.StopExecutionException
import
org.gradle.api.tasks.Sync
import
org.gradle.kotlin.dsl.filter
import
org.gradle.kotlin.dsl.named
import
org.gradle.kotlin.dsl.*
import
org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
import
java.io.ByteArrayInputStream
import
java.io.ByteArrayOutputStream
...
...
@@ -40,7 +39,7 @@ private fun BaseExtension.kotlinOptions(configure: Action<KotlinJvmOptions>) =
}
private
val
Project
.
android
:
BaseAppModuleExtension
get
()
=
extensions
.
getByName
(
"android"
)
as
BaseAppModuleExtension
get
()
=
extensions
[
"android"
]
as
BaseAppModuleExtension
fun
Project
.
setupCommon
()
{
androidBase
{
...
...
@@ -112,14 +111,14 @@ private fun Project.setupAppCommon() {
}
buildTypes
{
signingConfigs
.
getByName
(
"config"
)
.
also
{
getByName
(
"debug"
)
{
signingConfigs
[
"config"
]
.
also
{
debug
{
signingConfig
=
if
(
it
.
storeFile
?.
exists
()
==
true
)
it
else
signingConfigs
.
getByName
(
"debug"
)
else
signingConfigs
[
"debug"
]
}
getByName
(
"release"
)
{
release
{
signingConfig
=
if
(
it
.
storeFile
?.
exists
()
==
true
)
it
else
signingConfigs
.
getByName
(
"debug"
)
else
signingConfigs
[
"debug"
]
}
}
}
...
...
@@ -147,7 +146,7 @@ private fun Project.setupAppCommon() {
fun
Project
.
setupApp
()
{
setupAppCommon
()
val
syncLibs
=
tasks
.
register
(
"syncLibs"
,
Sync
::
class
.
java
)
{
val
syncLibs
by
tasks
.
registering
(
Sync
::
class
)
{
into
(
"src/main/jniLibs"
)
into
(
"armeabi-v7a"
)
{
from
(
rootProject
.
file
(
"native/out/armeabi-v7a"
))
{
...
...
@@ -180,35 +179,8 @@ fun Project.setupApp() {
}
}
val
sync
Assets
=
tasks
.
register
(
"syncAssets"
,
Sync
::
class
.
java
)
{
val
sync
Resources
by
tasks
.
registering
(
Sync
::
class
)
{
dependsOn
(
syncLibs
)
inputs
.
property
(
"version"
,
Config
.
version
)
inputs
.
property
(
"versionCode"
,
Config
.
versionCode
)
into
(
"src/main/assets"
)
from
(
rootProject
.
file
(
"scripts"
))
{
include
(
"util_functions.sh"
,
"boot_patch.sh"
,
"addon.d.sh"
)
include
(
"uninstaller.sh"
,
"module_installer.sh"
)
}
from
(
rootProject
.
file
(
"tools/bootctl"
))
into
(
"chromeos"
)
{
from
(
rootProject
.
file
(
"tools/futility"
))
from
(
rootProject
.
file
(
"tools/keys"
))
{
include
(
"kernel_data_key.vbprivk"
,
"kernel.keyblock"
)
}
}
filesMatching
(
"**/util_functions.sh"
)
{
filter
{
it
.
replace
(
"#MAGISK_VERSION_STUB"
,
"MAGISK_VER='${Config.version}'\nMAGISK_VER_CODE=${Config.versionCode}"
)
}
filter
<
FixCrLfFilter
>(
"eol"
to
FixCrLfFilter
.
CrLf
.
newInstance
(
"lf"
))
}
}
val
syncResources
=
tasks
.
register
(
"syncResources"
,
Sync
::
class
.
java
)
{
dependsOn
(
syncAssets
)
into
(
"src/main/resources/META-INF/com/google/android"
)
from
(
rootProject
.
file
(
"scripts/update_binary.sh"
))
{
rename
{
"update-binary"
}
...
...
@@ -222,20 +194,42 @@ fun Project.setupApp() {
val
variantCapped
=
name
.
capitalize
(
Locale
.
ROOT
)
val
variantLowered
=
name
.
toLowerCase
(
Locale
.
ROOT
)
val
copyStub
=
tasks
.
register
(
"copy${variantCapped}StubApk"
,
Copy
::
class
.
java
)
{
val
syncAssets
=
tasks
.
register
(
"sync${variantCapped}Assets"
,
Sync
::
class
)
{
dependsOn
(
syncResources
)
inputs
.
property
(
"version"
,
Config
.
version
)
inputs
.
property
(
"versionCode"
,
Config
.
versionCode
)
into
(
"src/main/assets"
)
from
(
rootProject
.
file
(
"out/stub-${variantLowered}.apk"
))
{
from
(
rootProject
.
file
(
"scripts"
))
{
include
(
"util_functions.sh"
,
"boot_patch.sh"
,
"addon.d.sh"
)
include
(
"uninstaller.sh"
,
"module_installer.sh"
)
}
from
(
rootProject
.
file
(
"tools/bootctl"
))
into
(
"chromeos"
)
{
from
(
rootProject
.
file
(
"tools/futility"
))
from
(
rootProject
.
file
(
"tools/keys"
))
{
include
(
"kernel_data_key.vbprivk"
,
"kernel.keyblock"
)
}
}
val
task
=
tasks
.
getByPath
(
":stub:package$variantCapped"
)
dependsOn
(
task
)
val
apk
=
task
.
outputs
.
files
.
asFileTree
.
filter
{
it
.
name
.
endsWith
(
".apk"
)
}
from
(
apk
)
{
rename
{
"stub.apk"
}
}
onlyIf
{
if
(
inputs
.
sourceFiles
.
files
.
size
!=
1
)
throw
StopExecutionException
(
"Please build stub first! (./build.py stub)"
)
true
filesMatching
(
"**/util_functions.sh"
)
{
filter
{
it
.
replace
(
"#MAGISK_VERSION_STUB"
,
"MAGISK_VER='${Config.version}'\nMAGISK_VER_CODE=${Config.versionCode}"
)
}
filter
<
FixCrLfFilter
>(
"eol"
to
FixCrLfFilter
.
CrLf
.
newInstance
(
"lf"
))
}
}
preBuildProvider
.
get
().
dependsOn
(
copyStub
)
preBuildProvider
.
get
().
dependsOn
(
syncAssets
)
val
keysDir
=
rootProject
.
file
(
"tools/keys"
)
val
outSrcDir
=
File
(
buildDir
,
"generated/source/keydata/$name"
)
...
...
native/src/base/include/embed.hpp
View file @
ad0e6511
#include <binaries.h>
#if defined(__arm__)
#include <armeabi-v7a_binaries.h>
#elif defined(__aarch64__)
...
...
native/src/init/init.cpp
View file @
ad0e6511
...
...
@@ -61,10 +61,6 @@ void restore_ramdisk_init() {
}
}
int
dump_manager
(
const
char
*
path
,
mode_t
mode
)
{
return
dump_bin
(
manager_xz
,
sizeof
(
manager_xz
),
path
,
mode
);
}
int
dump_preload
(
const
char
*
path
,
mode_t
mode
)
{
return
dump_bin
(
init_ld_xz
,
sizeof
(
init_ld_xz
),
path
,
mode
);
}
...
...
@@ -87,12 +83,6 @@ int main(int argc, char *argv[]) {
if
(
name
==
"magisk"
sv
)
return
magisk_proxy_main
(
argc
,
argv
);
if
(
argc
>
1
&&
argv
[
1
]
==
"-x"
sv
)
{
if
(
argc
>
2
&&
argv
[
2
]
==
"manager"
sv
)
return
dump_manager
(
argv
[
3
],
0644
);
return
1
;
}
if
(
getpid
()
!=
1
)
return
1
;
...
...
native/src/init/init.hpp
View file @
ad0e6511
...
...
@@ -36,7 +36,6 @@ bool check_two_stage();
void
setup_klog
();
const
char
*
backup_init
();
void
restore_ramdisk_init
();
int
dump_manager
(
const
char
*
path
,
mode_t
mode
);
int
dump_preload
(
const
char
*
path
,
mode_t
mode
);
/***************
...
...
native/src/init/rootdir.cpp
View file @
ad0e6511
...
...
@@ -151,6 +151,7 @@ static void patch_socket_name(const char *path) {
static
void
extract_files
(
bool
sbin
)
{
const
char
*
m32
=
sbin
?
"/sbin/magisk32.xz"
:
"magisk32.xz"
;
const
char
*
m64
=
sbin
?
"/sbin/magisk64.xz"
:
"magisk64.xz"
;
const
char
*
stub_xz
=
sbin
?
"/sbin/stub.xz"
:
"stub.xz"
;
if
(
access
(
m32
,
F_OK
)
==
0
)
{
auto
magisk
=
mmap_data
(
m32
);
...
...
@@ -172,7 +173,13 @@ static void extract_files(bool sbin) {
xsymlink
(
"./magisk32"
,
"magisk"
);
}
dump_manager
(
"stub.apk"
,
0
);
{
auto
stub
=
mmap_data
(
stub_xz
);
unlink
(
stub_xz
);
int
fd
=
xopen
(
"stub.apk"
,
O_WRONLY
|
O_CREAT
,
0
);
unxz
(
fd
,
stub
.
buf
,
stub
.
sz
);
close
(
fd
);
}
}
#define ROOTMIR MIRRDIR "/system_root"
...
...
scripts/avd_magisk.sh
View file @
ad0e6511
...
...
@@ -120,6 +120,7 @@ fi
# Magisk stuff
mkdir
-p
$MAGISKBIN
2>/dev/null
unzip
-oj
magisk.apk
'assets/*.sh'
-d
$MAGISKBIN
unzip
-oj
magisk.apk
'assets/stub.apk'
-d
$MAGISKTMP
mkdir
$NVBASE
/modules 2>/dev/null
mkdir
$POSTFSDATAD
2>/dev/null
mkdir
$SERVICED
2>/dev/null
...
...
@@ -143,8 +144,6 @@ ln -s ./magisk $MAGISKTMP/resetprop
ln
-s
./magisk
$MAGISKTMP
/magiskhide
ln
-s
./magiskpolicy
$MAGISKTMP
/supolicy
./magiskinit
-x
manager
$MAGISKTMP
/stub.apk
mkdir
-p
$MAGISKTMP
/.magisk/mirror
mkdir
$MAGISKTMP
/.magisk/block
touch
$MAGISKTMP
/.magisk/config
...
...
scripts/avd_patch.sh
View file @
ad0e6511
...
...
@@ -43,7 +43,7 @@ if [ -z "$FIRST_STAGE" ]; then
fi
# Extract files from APK
unzip
-oj
magisk.apk
'assets/util_functions.sh'
unzip
-oj
magisk.apk
'assets/util_functions.sh'
'assets/stub.apk'
.
./util_functions.sh
api_level_arch_detect
...
...
@@ -65,6 +65,7 @@ touch config
./magiskboot
compress
=
xz magisk32 magisk32.xz
./magiskboot
compress
=
xz magisk64 magisk64.xz
./magiskboot
compress
=
xz stub.apk stub.xz
export
KEEPVERITY
=
false
export
KEEPFORCEENCRYPT
=
true
...
...
@@ -75,10 +76,11 @@ export KEEPFORCEENCRYPT=true
"mkdir 0750 overlay.d/sbin"
\
"add 0644 overlay.d/sbin/magisk32.xz magisk32.xz"
\
"add 0644 overlay.d/sbin/magisk64.xz magisk64.xz"
\
"add 0644 overlay.d/sbin/stub.xz stub.xz"
\
"patch"
\
"backup ramdisk.cpio.orig"
\
"mkdir 000 .backup"
\
"add 000 .backup/.magisk config"
rm
-f
ramdisk.cpio.orig config magisk
*
.xz
rm
-f
ramdisk.cpio.orig config magisk
*
.xz
stub.xz
./magiskboot
compress
=
gzip
ramdisk.cpio ramdisk.cpio.gz
scripts/boot_patch.sh
View file @
ad0e6511
...
...
@@ -164,6 +164,7 @@ if [ -f magisk64 ]; then
./magiskboot
compress
=
xz magisk64 magisk64.xz
unset
SKIP64
fi
./magiskboot
compress
=
xz stub.apk stub.xz
./magiskboot cpio ramdisk.cpio
\
"add 0750
$INIT
magiskinit"
\
...
...
@@ -171,12 +172,13 @@ fi
"mkdir 0750 overlay.d/sbin"
\
"
$SKIP32
add 0644 overlay.d/sbin/magisk32.xz magisk32.xz"
\
"
$SKIP64
add 0644 overlay.d/sbin/magisk64.xz magisk64.xz"
\
"add 0644 overlay.d/sbin/stub.xz stub.xz"
\
"patch"
\
"backup ramdisk.cpio.orig"
\
"mkdir 000 .backup"
\
"add 000 .backup/.magisk config"
rm
-f
ramdisk.cpio.orig config magisk
*
.xz
rm
-f
ramdisk.cpio.orig config magisk
*
.xz
stub.xz
#################
# Binary Patches
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment