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
f4cf5dc0
Commit
f4cf5dc0
authored
Feb 02, 2022
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename class
parent
355341f0
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
27 additions
and
27 deletions
+27
-27
StubApk.java
app/shared/src/main/java/com/topjohnwu/magisk/StubApk.java
+1
-1
App.kt
app/src/main/java/com/topjohnwu/magisk/core/App.kt
+3
-3
Hacks.kt
app/src/main/java/com/topjohnwu/magisk/core/Hacks.kt
+2
-2
Info.kt
app/src/main/java/com/topjohnwu/magisk/core/Info.kt
+2
-2
ManagerHandler.kt
...java/com/topjohnwu/magisk/core/download/ManagerHandler.kt
+2
-2
HideAPK.kt
app/src/main/java/com/topjohnwu/magisk/core/tasks/HideAPK.kt
+2
-2
MagiskInstaller.kt
...n/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt
+2
-2
ShellInit.kt
...rc/main/java/com/topjohnwu/magisk/core/utils/ShellInit.kt
+2
-2
DelegateComponentFactory.java
...n/java/com/topjohnwu/magisk/DelegateComponentFactory.java
+1
-1
DownloadActivity.java
.../src/main/java/com/topjohnwu/magisk/DownloadActivity.java
+2
-2
DynLoad.java
stub/src/main/java/com/topjohnwu/magisk/DynLoad.java
+8
-8
No files found.
app/shared/src/main/java/com/topjohnwu/magisk/
DynAPK
.java
→
app/shared/src/main/java/com/topjohnwu/magisk/
StubApk
.java
View file @
f4cf5dc0
...
...
@@ -13,7 +13,7 @@ import java.util.Map;
import
io.michaelrocks.paranoid.Obfuscate
;
@Obfuscate
public
class
DynAPK
{
public
class
StubApk
{
private
static
File
dynDir
;
private
static
Method
addAssetPath
;
...
...
app/src/main/java/com/topjohnwu/magisk/core/App.kt
View file @
f4cf5dc0
...
...
@@ -6,7 +6,7 @@ import android.app.Application
import
android.content.Context
import
android.content.res.Configuration
import
android.os.Bundle
import
com.topjohnwu.magisk.
DynAPK
import
com.topjohnwu.magisk.
StubApk
import
com.topjohnwu.magisk.core.utils.*
import
com.topjohnwu.magisk.di.ServiceLocator
import
com.topjohnwu.superuser.Shell
...
...
@@ -19,7 +19,7 @@ import kotlin.system.exitProcess
open
class
App
()
:
Application
()
{
constructor
(
o
:
Any
)
:
this
()
{
val
data
=
DynAPK
.
Data
(
o
)
val
data
=
StubApk
.
Data
(
o
)
// Add the root service name mapping
data
.
classToComponent
[
RootRegistry
::
class
.
java
.
name
]
=
data
.
rootService
.
name
// Send back the actual root service class
...
...
@@ -58,7 +58,7 @@ open class App() : Application() {
refreshLocale
()
AppApkPath
=
if
(
isRunningAsStub
)
{
DynAPK
.
current
(
base
).
path
StubApk
.
current
(
base
).
path
}
else
{
base
.
packageResourcePath
}
...
...
app/src/main/java/com/topjohnwu/magisk/core/Hacks.kt
View file @
f4cf5dc0
...
...
@@ -11,14 +11,14 @@ import android.content.res.AssetManager
import
android.content.res.Configuration
import
android.content.res.Resources
import
android.util.DisplayMetrics
import
com.topjohnwu.magisk.DynAPK
import
com.topjohnwu.magisk.R
import
com.topjohnwu.magisk.StubApk
import
com.topjohnwu.magisk.core.utils.syncLocale
import
com.topjohnwu.magisk.di.AppContext
lateinit
var
AppApkPath
:
String
fun
AssetManager
.
addAssetPath
(
path
:
String
)
=
DynAPK
.
addAssetPath
(
this
,
path
)
fun
AssetManager
.
addAssetPath
(
path
:
String
)
=
StubApk
.
addAssetPath
(
this
,
path
)
fun
Context
.
wrap
():
Context
=
if
(
this
is
PatchedContext
)
this
else
PatchedContext
(
this
)
...
...
app/src/main/java/com/topjohnwu/magisk/core/Info.kt
View file @
f4cf5dc0
...
...
@@ -2,7 +2,7 @@ package com.topjohnwu.magisk.core
import
android.os.Build
import
androidx.databinding.ObservableBoolean
import
com.topjohnwu.magisk.
DynAPK
import
com.topjohnwu.magisk.
StubApk
import
com.topjohnwu.magisk.core.model.UpdateInfo
import
com.topjohnwu.magisk.core.utils.net.NetworkObserver
import
com.topjohnwu.magisk.data.repository.NetworkService
...
...
@@ -16,7 +16,7 @@ val isRunningAsStub get() = Info.stub != null
object
Info
{
var
stub
:
DynAPK
.
Data
?
=
null
var
stub
:
StubApk
.
Data
?
=
null
val
EMPTY_REMOTE
=
UpdateInfo
()
var
remote
=
EMPTY_REMOTE
...
...
app/src/main/java/com/topjohnwu/magisk/core/download/ManagerHandler.kt
View file @
f4cf5dc0
...
...
@@ -5,8 +5,8 @@ import android.app.PendingIntent
import
android.content.Intent
import
androidx.core.content.getSystemService
import
androidx.core.net.toFile
import
com.topjohnwu.magisk.DynAPK
import
com.topjohnwu.magisk.R
import
com.topjohnwu.magisk.StubApk
import
com.topjohnwu.magisk.core.ActivityTracker
import
com.topjohnwu.magisk.core.Info
import
com.topjohnwu.magisk.core.isRunningAsStub
...
...
@@ -45,7 +45,7 @@ suspend fun DownloadService.handleAPK(subject: Subject.Manager, stream: InputStr
if
(
isRunningAsStub
)
{
val
apk
=
subject
.
file
.
toFile
()
val
id
=
subject
.
notifyId
write
(
DynAPK
.
update
(
this
).
outputStream
())
write
(
StubApk
.
update
(
this
).
outputStream
())
if
(
Info
.
stub
!!
.
version
<
subject
.
stub
.
versionCode
)
{
// Also upgrade stub
update
(
id
)
{
...
...
app/src/main/java/com/topjohnwu/magisk/core/tasks/HideAPK.kt
View file @
f4cf5dc0
...
...
@@ -5,8 +5,8 @@ import android.content.Context
import
android.content.Intent
import
android.widget.Toast
import
com.topjohnwu.magisk.BuildConfig.APPLICATION_ID
import
com.topjohnwu.magisk.DynAPK
import
com.topjohnwu.magisk.R
import
com.topjohnwu.magisk.StubApk
import
com.topjohnwu.magisk.core.Config
import
com.topjohnwu.magisk.core.Const
import
com.topjohnwu.magisk.core.Info
...
...
@@ -156,7 +156,7 @@ object HideAPK {
setCancelable
(
false
)
show
()
}
val
apk
=
DynAPK
.
current
(
activity
)
val
apk
=
StubApk
.
current
(
activity
)
val
receiver
=
APKInstall
.
register
(
activity
,
APPLICATION_ID
)
{
launchApp
(
activity
,
APPLICATION_ID
)
dialog
.
dismiss
()
...
...
app/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt
View file @
f4cf5dc0
...
...
@@ -6,8 +6,8 @@ import android.widget.Toast
import
androidx.annotation.WorkerThread
import
androidx.core.os.postDelayed
import
com.topjohnwu.magisk.BuildConfig
import
com.topjohnwu.magisk.DynAPK
import
com.topjohnwu.magisk.R
import
com.topjohnwu.magisk.StubApk
import
com.topjohnwu.magisk.core.*
import
com.topjohnwu.magisk.core.utils.MediaStoreUtils
import
com.topjohnwu.magisk.core.utils.MediaStoreUtils.inputStream
...
...
@@ -93,7 +93,7 @@ abstract class MagiskInstallImpl protected constructor(
try
{
// Extract binaries
if
(
isRunningAsStub
)
{
val
zf
=
ZipFile
(
DynAPK
.
current
(
context
))
val
zf
=
ZipFile
(
StubApk
.
current
(
context
))
// Also extract magisk32 on non 64-bit only 64-bit devices
val
is32lib
=
Const
.
CPU_ABI_32
?.
let
{
...
...
app/src/main/java/com/topjohnwu/magisk/core/utils/ShellInit.kt
View file @
f4cf5dc0
package
com.topjohnwu.magisk.core.utils
import
android.content.Context
import
com.topjohnwu.magisk.DynAPK
import
com.topjohnwu.magisk.R
import
com.topjohnwu.magisk.StubApk
import
com.topjohnwu.magisk.core.Config
import
com.topjohnwu.magisk.core.Const
import
com.topjohnwu.magisk.core.Info
...
...
@@ -29,7 +29,7 @@ class ShellInit : Shell.Initializer() {
if
(
isRunningAsStub
)
{
if
(!
shell
.
isRoot
)
return
true
val
jar
=
JarFile
(
DynAPK
.
current
(
context
))
val
jar
=
JarFile
(
StubApk
.
current
(
context
))
val
bb
=
jar
.
getJarEntry
(
"lib/${Const.CPU_ABI}/libbusybox.so"
)
localBB
=
context
.
deviceProtectedContext
.
cachedFile
(
"busybox"
)
localBB
.
delete
()
...
...
stub/src/main/java/com/topjohnwu/magisk/DelegateComponentFactory.java
View file @
f4cf5dc0
...
...
@@ -21,7 +21,7 @@ public class DelegateComponentFactory extends AppComponentFactory {
@Override
public
ClassLoader
instantiateClassLoader
(
ClassLoader
cl
,
ApplicationInfo
info
)
{
DynLoad
.
loadA
PK
(
info
);
DynLoad
.
loadA
pk
(
info
);
return
new
DelegateClassLoader
();
}
...
...
stub/src/main/java/com/topjohnwu/magisk/DownloadActivity.java
View file @
f4cf5dc0
...
...
@@ -115,7 +115,7 @@ public class DownloadActivity extends Activity {
finish
();
};
// Download and upgrade the app
File
apk
=
dynLoad
?
DynAPK
.
current
(
this
)
:
new
File
(
getCacheDir
(),
"manager.apk"
);
File
apk
=
dynLoad
?
StubApk
.
current
(
this
)
:
new
File
(
getCacheDir
(),
"manager.apk"
);
request
(
apkLink
).
setExecutor
(
AsyncTask
.
THREAD_POOL_EXECUTOR
).
getAsFile
(
apk
,
file
->
{
if
(
dynLoad
)
{
// TODO
...
...
@@ -140,7 +140,7 @@ public class DownloadActivity extends Activity {
try
(
is
;
out
)
{
APKInstall
.
transfer
(
is
,
out
);
}
DynAPK
.
addAssetPath
(
getResources
().
getAssets
(),
apk
.
getPath
());
StubApk
.
addAssetPath
(
getResources
().
getAssets
(),
apk
.
getPath
());
}
catch
(
Exception
ignored
)
{
}
}
...
...
stub/src/main/java/com/topjohnwu/magisk/DynLoad.java
View file @
f4cf5dc0
...
...
@@ -31,7 +31,7 @@ public class DynLoad {
// The current active classloader
static
ClassLoader
loader
=
new
RedirectClassLoader
();
static
Object
componentFactory
;
static
final
DynAPK
.
Data
apkData
=
createApkData
();
static
final
StubApk
.
Data
apkData
=
createApkData
();
private
static
boolean
loadedApk
=
false
;
...
...
@@ -46,13 +46,13 @@ public class DynLoad {
}
// Dynamically load APK from internal or external storage
static
void
loadA
PK
(
ApplicationInfo
info
)
{
static
void
loadA
pk
(
ApplicationInfo
info
)
{
if
(
loadedApk
)
return
;
loadedApk
=
true
;
File
apk
=
DynAPK
.
current
(
info
);
File
update
=
DynAPK
.
update
(
info
);
File
apk
=
StubApk
.
current
(
info
);
File
update
=
StubApk
.
update
(
info
);
if
(
update
.
exists
())
{
// Rename from update
...
...
@@ -98,8 +98,8 @@ public class DynLoad {
// Dynamically load APK, inject ClassLoader into ContextImpl, then
// create the non-stub Application instance from the loaded APK
static
Application
createApp
(
Context
context
)
{
File
apk
=
DynAPK
.
current
(
context
);
loadA
PK
(
context
.
getApplicationInfo
());
File
apk
=
StubApk
.
current
(
context
);
loadA
pk
(
context
.
getApplicationInfo
());
// Trigger folder creation
context
.
getExternalFilesDir
(
null
);
...
...
@@ -193,8 +193,8 @@ public class DynLoad {
}
}
private
static
DynAPK
.
Data
createApkData
()
{
var
data
=
new
DynAPK
.
Data
();
private
static
StubApk
.
Data
createApkData
()
{
var
data
=
new
StubApk
.
Data
();
data
.
setVersion
(
BuildConfig
.
STUB_VERSION
);
data
.
setClassToComponent
(
Mapping
.
inverseMap
);
data
.
setRootService
(
DelegateRootService
.
class
);
...
...
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