Skip to content

Commit 9bb4ab1

Browse files
committed
Kotlinfy, Purify and support new version
I forgot to commit QAQ - Convert to Kotlin - Add purify function - Support 5.56
1 parent 737d79c commit 9bb4ab1

34 files changed

+1357
-1427
lines changed

app/build.gradle

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
apply plugin: 'com.android.application'
2+
apply plugin: 'kotlin-android-extensions'
3+
apply plugin: 'kotlin-android'
24

35
android {
46
compileSdkVersion 29
57

68
defaultConfig {
79
applicationId "me.iacn.biliroaming"
8-
minSdkVersion 18
10+
minSdkVersion 21
911
targetSdkVersion 27 // Target Android O
10-
versionCode 16
11-
versionName "1.1.12"
12+
versionCode 17
13+
versionName "1.1.13"
1214
}
1315

1416
buildTypes {
@@ -37,13 +39,17 @@ dependencies {
3739
implementation fileTree(include: ['*.jar'], dir: 'libs')
3840
compileOnly 'de.robv.android.xposed:api:82'
3941
compileOnly 'de.robv.android.xposed:api:82:sources'
42+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
4043
}
4144

4245
afterEvaluate {
4346
installDebug.doLast {
4447
restartBiliBili()
4548
}
4649
}
50+
repositories {
51+
mavenCentral()
52+
}
4753

4854
def restartBiliBili() {
4955
exec {

app/src/debug/java/me/iacn/hotxposed/HotXposedInit.java

Lines changed: 0 additions & 63 deletions
This file was deleted.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package me.iacn.hotxposed
2+
3+
import android.content.Context
4+
import android.content.pm.PackageManager
5+
import dalvik.system.PathClassLoader
6+
import de.robv.android.xposed.IXposedHookLoadPackage
7+
import de.robv.android.xposed.XC_MethodReplacement
8+
import de.robv.android.xposed.XposedHelpers
9+
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam
10+
import me.iacn.biliroaming.BuildConfig
11+
import java.io.File
12+
13+
/**
14+
* Created by iAcn on 2019/3/25
15+
* Email i@iacn.me
16+
*/
17+
class HotXposedInit : IXposedHookLoadPackage {
18+
@Throws(Throwable::class)
19+
override fun handleLoadPackage(lpparam: LoadPackageParam) {
20+
disableModulesUpdatedNotification(lpparam)
21+
if (HOST_PACKAGE != lpparam.packageName && HOST_PACKAGE2 != lpparam.packageName
22+
&& HOST_PACKAGE3 != lpparam.packageName
23+
&& BuildConfig.APPLICATION_ID != lpparam.packageName) return
24+
val moduleApkFile = moduleApkFile
25+
if (!moduleApkFile.exists()) return
26+
val classLoader = PathClassLoader(moduleApkFile.absolutePath, lpparam.javaClass.classLoader)
27+
val xposedInitClass = classLoader.loadClass(REAL_XPOSED_INIT)
28+
xposedInitClass?.let{
29+
XposedHelpers.callMethod(it.newInstance(), "handleLoadPackage", lpparam)
30+
}
31+
}
32+
33+
private fun disableModulesUpdatedNotification(lpparam: LoadPackageParam) {
34+
if ("de.robv.android.xposed.installer" == lpparam.packageName) {
35+
XposedHelpers.findAndHookMethod("de.robv.android.xposed.installer.util.NotificationUtil", lpparam.classLoader,
36+
"showModulesUpdatedNotification", XC_MethodReplacement.DO_NOTHING)
37+
}
38+
}
39+
40+
@get:Throws(PackageManager.NameNotFoundException::class)
41+
private val moduleApkFile: File
42+
get() {
43+
val activityThread = XposedHelpers.callStaticMethod(XposedHelpers.findClass("android.app.ActivityThread", null), "currentActivityThread")
44+
val context = XposedHelpers.callMethod(activityThread, "getSystemContext") as Context
45+
val applicationInfo = context.packageManager.getApplicationInfo(BuildConfig.APPLICATION_ID, 0)
46+
return File(applicationInfo.sourceDir)
47+
}
48+
49+
companion object {
50+
private const val HOST_PACKAGE = "tv.danmaku.bili"
51+
private const val HOST_PACKAGE2 = "com.bilibili.app.blue"
52+
private const val HOST_PACKAGE3 = "com.bilibili.app.in"
53+
private const val REAL_XPOSED_INIT = "me.iacn.biliroaming.XposedInit"
54+
}
55+
}

app/src/main/java/me/iacn/biliroaming/BiliBiliPackage.java

Lines changed: 0 additions & 229 deletions
This file was deleted.

0 commit comments

Comments
 (0)