fix on latest alpha
This commit is contained in:
parent
5987afb3b2
commit
dfa371dafa
3 changed files with 65 additions and 9 deletions
26
.idea/appInsightsSettings.xml
generated
Normal file
26
.idea/appInsightsSettings.xml
generated
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AppInsightsSettings">
|
||||||
|
<option name="tabSettings">
|
||||||
|
<map>
|
||||||
|
<entry key="Firebase Crashlytics">
|
||||||
|
<value>
|
||||||
|
<InsightsFilterSettings>
|
||||||
|
<option name="connection">
|
||||||
|
<ConnectionSetting>
|
||||||
|
<option name="appId" value="PLACEHOLDER" />
|
||||||
|
<option name="mobileSdkAppId" value="" />
|
||||||
|
<option name="projectId" value="" />
|
||||||
|
<option name="projectNumber" value="" />
|
||||||
|
</ConnectionSetting>
|
||||||
|
</option>
|
||||||
|
<option name="signal" value="SIGNAL_UNSPECIFIED" />
|
||||||
|
<option name="timeIntervalDays" value="THIRTY_DAYS" />
|
||||||
|
<option name="visibilityType" value="ALL" />
|
||||||
|
</InsightsFilterSettings>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -12,8 +12,8 @@ android {
|
||||||
applicationId = "cocobo1.pupu.xposed"
|
applicationId = "cocobo1.pupu.xposed"
|
||||||
minSdk = 22
|
minSdk = 22
|
||||||
targetSdk = 36
|
targetSdk = 36
|
||||||
versionCode = 1000
|
versionCode = 1010
|
||||||
versionName = "1.0.0"
|
versionName = "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|
@ -29,10 +29,10 @@ android {
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility = JavaVersion.VERSION_11
|
sourceCompatibility = JavaVersion.VERSION_11
|
||||||
targetCompatibility = JavaVersion.VERSION_17
|
targetCompatibility = JavaVersion.VERSION_21
|
||||||
}
|
}
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = "17"
|
jvmTarget = "21"
|
||||||
}
|
}
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
buildConfig = true
|
buildConfig = true
|
||||||
|
|
|
||||||
|
|
@ -50,11 +50,15 @@ class FontsModule: PupuModule() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onInit(packageParam: XC_LoadPackage.LoadPackageParam) = with (packageParam) {
|
private fun hookClass(classLoader: ClassLoader, className: String) {
|
||||||
XposedHelpers.findAndHookMethod("com.facebook.react.views.text.ReactFontManager", classLoader, "createAssetTypeface",
|
XposedHelpers.findAndHookMethod(
|
||||||
|
className,
|
||||||
|
classLoader,
|
||||||
|
"createAssetTypeface",
|
||||||
String::class.java,
|
String::class.java,
|
||||||
Int::class.java,
|
Int::class.java,
|
||||||
"android.content.res.AssetManager", object : XC_MethodReplacement() {
|
"android.content.res.AssetManager",
|
||||||
|
object : XC_MethodReplacement() {
|
||||||
override fun replaceHookedMethod(param: MethodHookParam): Typeface? {
|
override fun replaceHookedMethod(param: MethodHookParam): Typeface? {
|
||||||
val fontFamilyName: String = param.args[0].toString()
|
val fontFamilyName: String = param.args[0].toString()
|
||||||
val style: Int = param.args[1] as Int
|
val style: Int = param.args[1] as Int
|
||||||
|
|
@ -62,8 +66,34 @@ class FontsModule: PupuModule() {
|
||||||
return createAssetTypeface(fontFamilyName, style, assetManager)
|
return createAssetTypeface(fontFamilyName, style, assetManager)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
val fontDefFile = File(appInfo.dataDir, "files/pupu/fonts.json")
|
// override fun onInit(packageParam: XC_LoadPackage.LoadPackageParam) = with (packageParam) {
|
||||||
|
// XposedHelpers.findAndHookMethod("com.facebook.react.views.text.ReactFontManager", classLoader, "createAssetTypeface",
|
||||||
|
// String::class.java,
|
||||||
|
// Int::class.java,
|
||||||
|
// "android.content.res.AssetManager", object : XC_MethodReplacement() {
|
||||||
|
// override fun replaceHookedMethod(param: MethodHookParam): Typeface? {
|
||||||
|
// val fontFamilyName: String = param.args[0].toString()
|
||||||
|
// val style: Int = param.args[1] as Int
|
||||||
|
// val assetManager: AssetManager = param.args[2] as AssetManager
|
||||||
|
// return createAssetTypeface(fontFamilyName, style, assetManager)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
|
||||||
|
override fun onInit(packageParam: XC_LoadPackage.LoadPackageParam) = with (packageParam) {
|
||||||
|
try {
|
||||||
|
// Try to hook on versions (280201+)
|
||||||
|
hookClass(classLoader, "com.facebook.react.views.text.ReactFontManager\$Companion")
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
when (e) {
|
||||||
|
// Hook old class (280200-)
|
||||||
|
is NoClassDefFoundError, is XposedHelpers.ClassNotFoundError -> hookClass(classLoader, "com.facebook.react.views.text.ReactFontManager")
|
||||||
|
else -> throw e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val fontDefFile = File(appInfo.dataDir, "files/pyon/fonts.json")
|
||||||
if (!fontDefFile.exists()) return@with
|
if (!fontDefFile.exists()) return@with
|
||||||
|
|
||||||
val fontDef = try {
|
val fontDef = try {
|
||||||
|
|
@ -71,7 +101,7 @@ class FontsModule: PupuModule() {
|
||||||
json.decodeFromString<FontDefinition>(fontDefFile.readText())
|
json.decodeFromString<FontDefinition>(fontDefFile.readText())
|
||||||
} catch (_: Throwable) { return@with }
|
} catch (_: Throwable) { return@with }
|
||||||
|
|
||||||
fontsDownloadsDir = File(appInfo.dataDir, "files/pupu/downloads/fonts").apply { mkdirs() }
|
fontsDownloadsDir = File(appInfo.dataDir, "files/pyon/downloads/fonts").apply { mkdirs() }
|
||||||
fontsDir = File(fontsDownloadsDir, fontDef.name!!).apply { mkdirs() }
|
fontsDir = File(fontsDownloadsDir, fontDef.name!!).apply { mkdirs() }
|
||||||
fontsAbsPath = fontsDir.absolutePath + "/"
|
fontsAbsPath = fontsDir.absolutePath + "/"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue