mirror of
https://github.com/Xtao-Labs/fuck_huaya.git
synced 2024-11-24 14:39:20 +00:00
support v1.3.0
This commit is contained in:
parent
547c886e6a
commit
a6d724d971
@ -40,15 +40,16 @@ android {
|
|||||||
buildFeatures {
|
buildFeatures {
|
||||||
viewBinding true
|
viewBinding true
|
||||||
}
|
}
|
||||||
lintOptions {
|
namespace 'com.xtaolabs.fuck_huaya'
|
||||||
|
lint {
|
||||||
checkReleaseBuilds false
|
checkReleaseBuilds false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly 'de.robv.android.xposed:api:82'
|
compileOnly 'de.robv.android.xposed:api:82'
|
||||||
implementation 'com.highcapable.yukihookapi:api:1.1.6'
|
implementation 'com.highcapable.yukihookapi:api:1.1.11'
|
||||||
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.1.6'
|
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.1.11'
|
||||||
implementation 'com.github.duanhong169:drawabletoolbox:1.0.7'
|
implementation 'com.github.duanhong169:drawabletoolbox:1.0.7'
|
||||||
implementation 'androidx.core:core-ktx:1.9.0'
|
implementation 'androidx.core:core-ktx:1.9.0'
|
||||||
implementation 'androidx.appcompat:appcompat:1.5.1'
|
implementation 'androidx.appcompat:appcompat:1.5.1'
|
||||||
@ -57,4 +58,4 @@ dependencies {
|
|||||||
testImplementation 'junit:junit:4.13.2'
|
testImplementation 'junit:junit:4.13.2'
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
package="com.xtaolabs.fuck_huaya">
|
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".application.DefaultApplication"
|
android:name=".application.DefaultApplication"
|
||||||
|
@ -3,10 +3,7 @@ package com.xtaolabs.fuck_huaya.hook
|
|||||||
import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
|
import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
|
||||||
import com.highcapable.yukihookapi.hook.factory.encase
|
import com.highcapable.yukihookapi.hook.factory.encase
|
||||||
import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
|
import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
|
||||||
import com.xtaolabs.fuck_huaya.hook.apps.CaiyunHooker
|
|
||||||
import com.xtaolabs.fuck_huaya.hook.apps.CimocHooker
|
|
||||||
import com.xtaolabs.fuck_huaya.hook.apps.HuayaHooker
|
import com.xtaolabs.fuck_huaya.hook.apps.HuayaHooker
|
||||||
import com.xtaolabs.fuck_huaya.hook.apps.XLXiaoMiHooker
|
|
||||||
|
|
||||||
|
|
||||||
@InjectYukiHookWithXposed(isUsingResourcesHook = false)
|
@InjectYukiHookWithXposed(isUsingResourcesHook = false)
|
||||||
@ -16,14 +13,5 @@ class HookEntry : IYukiHookXposedInit {
|
|||||||
loadApp("cn.fzhuayantcoltd.huayaapp") {
|
loadApp("cn.fzhuayantcoltd.huayaapp") {
|
||||||
loadHooker(HuayaHooker)
|
loadHooker(HuayaHooker)
|
||||||
}
|
}
|
||||||
loadApp("com.cimoc.haleydu") {
|
|
||||||
loadHooker(CimocHooker)
|
|
||||||
}
|
|
||||||
loadApp("com.nowcasting.activity") {
|
|
||||||
loadHooker(CaiyunHooker)
|
|
||||||
}
|
|
||||||
loadApp("com.android.providers.downloads") {
|
|
||||||
loadHooker(XLXiaoMiHooker)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
package com.xtaolabs.fuck_huaya.hook.apps
|
|
||||||
|
|
||||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
|
||||||
|
|
||||||
object CaiyunHooker : YukiBaseHooker() {
|
|
||||||
|
|
||||||
private fun fuckVip() {
|
|
||||||
"d.g.j.o1".hook {
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "h0"
|
|
||||||
}
|
|
||||||
// this.B =
|
|
||||||
beforeHook {
|
|
||||||
args().first().set("svip")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "J"
|
|
||||||
}
|
|
||||||
replaceTo("svip")
|
|
||||||
}
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "f0"
|
|
||||||
}
|
|
||||||
// this.x =
|
|
||||||
beforeHook {
|
|
||||||
args().first().set(true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "N"
|
|
||||||
}
|
|
||||||
replaceTo(true)
|
|
||||||
}
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "c0"
|
|
||||||
}
|
|
||||||
// this.z =
|
|
||||||
beforeHook {
|
|
||||||
args().first().set(4701859200L)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "A"
|
|
||||||
}
|
|
||||||
replaceTo(4701859200L)
|
|
||||||
}
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "O"
|
|
||||||
}
|
|
||||||
afterHook {
|
|
||||||
if (args().first().cast<String>().equals("svip")) {
|
|
||||||
result = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onHook() {
|
|
||||||
fuckVip()
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
package com.xtaolabs.fuck_huaya.hook.apps
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
|
||||||
|
|
||||||
object CimocHooker : YukiBaseHooker() {
|
|
||||||
|
|
||||||
private fun fuckAd() {
|
|
||||||
findClass("com.haleydu.cimoc.manager.PreferenceManager", appClassLoader).hook {
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "getBoolean"
|
|
||||||
paramCount = 2
|
|
||||||
}
|
|
||||||
afterHook {
|
|
||||||
if (args().first().cast<String>().equals("pref_global_shutdown_ad")) {
|
|
||||||
result = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun fuckPermissionCheck() {
|
|
||||||
findClass("com.haleydu.cimoc.ui.activity.MainActivity", appClassLoader).hook {
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "showPermission"
|
|
||||||
}
|
|
||||||
replaceUnit { }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onHook() {
|
|
||||||
"com.stub.StubApp".hook {
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "attachBaseContext"
|
|
||||||
}
|
|
||||||
afterHook {
|
|
||||||
appClassLoader = args().first().cast<Context>()!!.classLoader
|
|
||||||
fuckAd()
|
|
||||||
fuckPermissionCheck()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -20,7 +20,10 @@ object HuayaHooker : YukiBaseHooker() {
|
|||||||
|
|
||||||
private fun fuckReadAd() {
|
private fun fuckReadAd() {
|
||||||
// bookReadLimitDialog.show();
|
// bookReadLimitDialog.show();
|
||||||
findClass("cn.fzhuayantcoltd.huayaapp.ui.activity.longcartoon.LongBookDetailActivity", appClassLoader).hook {
|
findClass(
|
||||||
|
"cn.fzhuayantcoltd.huayaapp.ui.activity.longcartoon.LongBookDetailActivity",
|
||||||
|
appClassLoader
|
||||||
|
).hook {
|
||||||
injectMember {
|
injectMember {
|
||||||
method {
|
method {
|
||||||
name = "a"
|
name = "a"
|
||||||
@ -48,7 +51,10 @@ object HuayaHooker : YukiBaseHooker() {
|
|||||||
|
|
||||||
private fun fuckSignInRewardAd() {
|
private fun fuckSignInRewardAd() {
|
||||||
// AdFromEnum.SIGNIN
|
// AdFromEnum.SIGNIN
|
||||||
findClass("cn.fzhuayantcoltd.huayaapp.ui.activity.task.TasksCenterActivity", appClassLoader).hook {
|
findClass(
|
||||||
|
"cn.fzhuayantcoltd.huayaapp.ui.activity.task.TasksCenterActivity",
|
||||||
|
appClassLoader
|
||||||
|
).hook {
|
||||||
injectMember {
|
injectMember {
|
||||||
method {
|
method {
|
||||||
name = "j"
|
name = "j"
|
||||||
@ -82,7 +88,7 @@ object HuayaHooker : YukiBaseHooker() {
|
|||||||
findClass("cn.fzhuayantcoltd.huayaapp.util.y", appClassLoader).hook {
|
findClass("cn.fzhuayantcoltd.huayaapp.util.y", appClassLoader).hook {
|
||||||
injectMember {
|
injectMember {
|
||||||
method {
|
method {
|
||||||
name = "s"
|
name = "r"
|
||||||
}
|
}
|
||||||
replaceToTrue()
|
replaceToTrue()
|
||||||
}
|
}
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
package com.xtaolabs.fuck_huaya.hook.apps
|
|
||||||
|
|
||||||
import android.os.Environment
|
|
||||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
|
||||||
|
|
||||||
object XLXiaoMiHooker : YukiBaseHooker() {
|
|
||||||
|
|
||||||
private val CacheFilePATH = Environment.getExternalStorageDirectory().absolutePath + "/Download/DLManager"
|
|
||||||
|
|
||||||
private fun fuckXL() {
|
|
||||||
"com.android.providers.downloads.XLDownloadApplication".hook {
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "generateCacheFileDir"
|
|
||||||
}
|
|
||||||
replaceTo(CacheFilePATH)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"com.android.providers.downloads.config.XLConfig".hook {
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "setDebug"
|
|
||||||
}
|
|
||||||
replaceUnit { }
|
|
||||||
}
|
|
||||||
injectMember {
|
|
||||||
method {
|
|
||||||
name = "isDebug"
|
|
||||||
}
|
|
||||||
replaceToFalse()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onHook() {
|
|
||||||
fuckXL()
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,8 +2,5 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string-array name="module_scope">
|
<string-array name="module_scope">
|
||||||
<item>cn.fzhuayantcoltd.huayaapp</item>
|
<item>cn.fzhuayantcoltd.huayaapp</item>
|
||||||
<item>com.cimoc.haleydu</item>
|
|
||||||
<item>com.nowcasting.activity</item>
|
|
||||||
<item>com.android.providers.downloads</item>
|
|
||||||
</string-array>
|
</string-array>
|
||||||
</resources>
|
</resources>
|
10
build.gradle
10
build.gradle
@ -1,11 +1,11 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application' version '7.4.0' apply false
|
id 'com.android.application' version '8.1.0' apply false
|
||||||
id 'com.android.library' version '7.4.0' apply false
|
id 'com.android.library' version '8.1.0' apply false
|
||||||
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
|
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
|
||||||
}
|
}
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
appVersionName = "1.2.0"
|
appVersionName = "1.3.0"
|
||||||
appVersionCode = 6
|
appVersionCode = 7
|
||||||
enableR8 = false
|
enableR8 = false
|
||||||
}
|
}
|
||||||
|
@ -22,4 +22,6 @@ kotlin.code.style=official
|
|||||||
# thereby reducing the size of the R class for that library
|
# thereby reducing the size of the R class for that library
|
||||||
android.nonTransitiveRClass=true
|
android.nonTransitiveRClass=true
|
||||||
# Incremental
|
# Incremental
|
||||||
kotlin.incremental.useClasspathSnapshot=true
|
kotlin.incremental.useClasspathSnapshot=true
|
||||||
|
android.defaults.buildfeatures.buildconfig=true
|
||||||
|
android.nonFinalResIds=false
|
||||||
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
|||||||
#Sun Jan 29 21:22:14 CST 2023
|
#Sun Jan 29 21:22:14 CST 2023
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
Loading…
Reference in New Issue
Block a user