fix: remove spoofer from stable

This commit is contained in:
authorisation
2023-08-08 00:04:39 +02:00
parent 87c5f7dc55
commit 70e31c1fd8
12 changed files with 8 additions and 300 deletions

View File

@ -215,18 +215,6 @@
"unlimited_multi_snap": {
"name": "سناب متعدد غير محدود",
"description": "يسمح لك بأخذ كمية غير محدودة من السنابات المتعددة"
},
"device_spoof": {
"name": "خداع قِيَم الجهاز",
"description": "محاكاة لقيم الأجهزة"
},
"device_fingerprint": {
"name": "بصمة الجهاز",
"description": "Spoofs the device fingerprint"
},
"android_id": {
"name": "Android ID",
"description": "Spoofs the devices Android ID"
}
},
"option": {
@ -418,8 +406,7 @@
"clear_cache_title": "تنظيف ذاكرة التخزين المؤقت",
"reset_all_title": "إعادة تعيين كل الإعدادات",
"reset_all_confirmation": "هل أنت متأكد من أنك تريد إعادة تعيين كل الإعدادات؟",
"success_toast": "نجح!",
"device_spoofer": "خداع الجهاز"
"success_toast": "نجح!"
}
},
"download_processor": {
@ -440,8 +427,5 @@
"title": "إعدادات SnapEnhance",
"selected_text": "{count} المحدد",
"invalid_number_toast": "رقم غير صالح!"
},
"spoof_activity": {
"title": "خداع الإعدادات"
}
}

View File

@ -215,18 +215,6 @@
"unlimited_multi_snap": {
"name": "Unbegrenzte Multi-Snaps",
"description": "Ermöglicht die Aufnahme einer unbegrenzten Anzahl von Multi-Snaps"
},
"device_spoof": {
"name": "Device Values Spoofen",
"description": "Spoofed bestimmte Werte des Geräts"
},
"device_fingerprint": {
"name": "Gerät Fingerabdruck",
"description": "Spoofed den Geräte-Fingerabdruck"
},
"android_id": {
"name": "Android ID",
"description": "Spoofed die Android-ID"
}
},
"option": {
@ -418,8 +406,7 @@
"clear_cache_title": "Lösche den Zwischenspeicher",
"reset_all_title": "Alle Einstellungen zurücksetzen",
"reset_all_confirmation": "Bist du sicher, dass du alle Einstellungen zurücksetzen möchten?",
"success_toast": "Erfolgreich!",
"device_spoofer": "Device Spoofer"
"success_toast": "Erfolgreich!"
}
},
"download_processor": {
@ -440,8 +427,5 @@
"title": "SnapEnhance Einstellungen",
"selected_text": "{count} ausgewählt",
"invalid_number_toast": "Ungültige Nummer!"
},
"spoof_activity": {
"title": "Spoof Einstellungen"
}
}

View File

@ -226,18 +226,6 @@
"no_friend_score_delay": {
"name": "No Friend Score Delay",
"description": "Removes the delay in displaying friends scores. It will be updated immediately when you open a profile page"
},
"device_spoof": {
"name": "Spoof Device Values",
"description": "Spoofs the devices values"
},
"device_fingerprint": {
"name": "Device Fingerprint",
"description": "Spoofs the device fingerprint"
},
"android_id": {
"name": "Android ID",
"description": "Spoofs the devices Android ID"
}
},
@ -442,8 +430,7 @@
"clear_cache_title": "Clear Cache",
"reset_all_title": "Reset all settings",
"reset_all_confirmation": "Are you sure you want to reset all settings?",
"success_toast": "Success!",
"device_spoofer": "Device Spoofer"
"success_toast": "Success!"
}
},
"download_processor": {
@ -464,8 +451,5 @@
"title": "SnapEnhance Settings",
"selected_text": "{count} selected",
"invalid_number_toast": "Invalid number!"
},
"spoof_activity": {
"title": "Spoof Settings"
}
}

View File

@ -215,18 +215,6 @@
"unlimited_multi_snap": {
"name": "Multi Snap illimité",
"description": "Vous permet d'avoir un nombre illimité de multi snap"
},
"device_spoof": {
"name": "Falsifier les valeures de l'appareil",
"description": "Falsifie les valeures de l'appareil"
},
"device_fingerprint": {
"name": "Empreinte numérique de lappareil",
"description": "Falsifie l'empreinte numérique de l'appareil"
},
"android_id": {
"name": "Identifiant Android",
"description": "Falsifie l'identifiant Android"
}
},
"option": {
@ -418,8 +406,7 @@
"clear_cache_title": "Vider le cache",
"reset_all_title": "Réinitialiser tous les réglages",
"reset_all_confirmation": "Êtes vous sûr de vouloir réinitialiser tous les réglages?",
"success_toast": "Succèss!",
"device_spoofer": "Falsification de l'appareil"
"success_toast": "Succèss!"
}
},
"download_processor": {
@ -440,8 +427,5 @@
"title": "Réglages de SnapEnhance",
"selected_text": "{count} élément(s) sélectionné(s)",
"invalid_number_toast": "Numéro invalide!"
},
"spoof_activity": {
"title": "Paramètres du Falsificateur"
}
}

View File

@ -215,18 +215,6 @@
"unlimited_multi_snap": {
"name": "अनलिमिटेड मल्टी स्नैप भेजे",
"description": "आपको अनलिमिटेड मल्टी स्नैप भेजने दे"
},
"device_spoof": {
"name": "डिवाइस की वैल्यू बदले",
"description": "डिवाइस की वैल्यू छुपाये"
},
"device_fingerprint": {
"name": "डिवाइस की फिंगगर्प्रिन्ट",
"description": "डिवाइस की फिंगगर्प्रिन्ट बदले"
},
"android_id": {
"name": "एंड्रॉयड आइडी",
"description": "एंड्रॉयड की आइडी बदले"
}
},
"option": {
@ -418,8 +406,7 @@
"clear_cache_title": "कैश को साफ़ करें",
"reset_all_title": "सभी सेटिंग्स रीसेट करें",
"reset_all_confirmation": "क्या आप वाकई सभी सेटिंग्स को रीसेट करना चाहते हैं?",
"success_toast": "सफलता!",
"device_spoofer": "डिवाइस छुपाये"
"success_toast": "सफलता!"
}
},
"download_processor": {
@ -440,8 +427,5 @@
"title": "SnapEnhance सेटिंग्स",
"selected_text": "{count} चयनित",
"invalid_number_toast": "अमान्य संख्या!"
},
"spoof_activity": {
"title": "स्पूफ सेटिंग्स"
}
}

View File

@ -215,18 +215,6 @@
"unlimited_multi_snap": {
"name": "Korlátlan Multi Snap",
"description": "Lehetővé teszi, hogy korlátlan számú többszörös pillanatfelvételt készítsen"
},
"device_spoof": {
"name": "Eszközértékek hamisítása",
"description": "Meghamisítja az eszközök értékeit"
},
"device_fingerprint": {
"name": "Eszköz Ujjlenyomata",
"description": "Eszköz ujjlenyomatának meghamisítása"
},
"android_id": {
"name": "Android Azonosítója",
"description": "Meghamísítja az eszköz Android Azonosítóját"
}
},
"option": {
@ -418,8 +406,7 @@
"clear_cache_title": "Gyorsítótár törlése",
"reset_all_title": "Beállítások visszaállítása",
"reset_all_confirmation": "Biztos alapra szeretnéd helyezni?",
"success_toast": "Siker!",
"device_spoofer": "Eszköz hamisító"
"success_toast": "Siker!"
}
},
"download_processor": {
@ -440,8 +427,5 @@
"title": "SnapEnhance Beállítások",
"selected_text": "{count} kiváltasztva",
"invalid_number_toast": "Érvénytelen szám!"
},
"spoof_activity": {
"title": "Hamisítási Beállítások"
}
}

View File

@ -215,18 +215,6 @@
"unlimited_multi_snap": {
"name": "Snap Multipli Illimitati",
"description": "Ti consente di scattare una quantità illimitata di scatti multipli"
},
"device_spoof": {
"name": "Falsifica Valori Dispositivo",
"description": "Falsifica i valori del dispositivo"
},
"device_fingerprint": {
"name": "Impronta Digitale del Dispositivo",
"description": "Falsifica l'impronta digitale del dispositivo"
},
"android_id": {
"name": "ID Android",
"description": "Falsifica gli ID Android dei dispositivi"
}
},
"option": {
@ -418,8 +406,7 @@
"clear_cache_title": "Svuota la Cache",
"reset_all_title": "Ripristina tutte le impostazioni",
"reset_all_confirmation": "Sei sicuro di voler ripristinare tutte le impostazioni?",
"success_toast": "Successo!",
"device_spoofer": "Falsificatore Dispositivo"
"success_toast": "Successo!"
}
},
"download_processor": {
@ -440,8 +427,5 @@
"title": "Impostazioni di SnapEnhance",
"selected_text": "{count} selezionati",
"invalid_number_toast": "Numero non valido!"
},
"spoof_activity": {
"title": "Falsifica Impostazioni"
}
}

View File

@ -215,18 +215,6 @@
"unlimited_multi_snap": {
"name": "Sınırsız Çoklu Snap",
"description": "Sınırsız sayıda çoklu snap çekmenizi sağlar"
},
"device_spoof": {
"name": "Sahte Cihaz Değerleri",
"description": "Cihaz değerlerini taklit eder"
},
"device_fingerprint": {
"name": "Cihaz Parmak İzi",
"description": "Cihaz parmak izini taklit eder"
},
"android_id": {
"name": "Android Kimliği",
"description": "Cihazların Android kimliğini taklit eder"
}
},
"option": {
@ -418,8 +406,7 @@
"clear_cache_title": "Önbelleği Temizle",
"reset_all_title": "Tüm ayarları sıfırla",
"reset_all_confirmation": "Tüm ayarları sıfırlamak istediğinizden emin misiniz?",
"success_toast": "Başarılı!",
"device_spoofer": "Cihaz Spoofer"
"success_toast": "Başarılı!"
}
},
"download_processor": {
@ -440,8 +427,5 @@
"title": "SnapEnhance Ayarları",
"selected_text": "{count} seçildi",
"invalid_number_toast": "Geçersiz sayı!"
},
"spoof_activity": {
"title": "Spoof Ayarları"
}
}

View File

@ -1,47 +0,0 @@
package me.rhunk.snapenhance.features.impl.experiments
import me.rhunk.snapenhance.Logger
import me.rhunk.snapenhance.config.ConfigProperty
import me.rhunk.snapenhance.features.Feature
import me.rhunk.snapenhance.features.FeatureLoadParams
import me.rhunk.snapenhance.hook.HookStage
import me.rhunk.snapenhance.hook.Hooker
class DeviceSpooferHook: Feature("device_spoofer", loadParams = FeatureLoadParams.ACTIVITY_CREATE_ASYNC) {
override fun asyncOnActivityCreate() {
//FINGERPRINT
if(getFingerprint().isNotEmpty()) {
val fingerprintClass = android.os.Build::class.java
Hooker.hook(fingerprintClass, "FINGERPRINT", HookStage.BEFORE) { hookAdapter ->
hookAdapter.setResult(getFingerprint())
}
Hooker.hook(fingerprintClass, "deriveFingerprint", HookStage.BEFORE) { hookAdapter ->
hookAdapter.setResult(getFingerprint())
}
}
else {
Logger.xposedLog("Fingerprint is null, not spoofing")
}
//ANDROID ID
if(getAndroidId().isNotEmpty()) {
val settingsSecureClass = android.provider.Settings.Secure::class.java
Hooker.hook(settingsSecureClass, "getString", HookStage.BEFORE) { hookAdapter ->
if(hookAdapter.args()[1] == "android_id") {
hookAdapter.setResult(getAndroidId())
}
}
}
else {
Logger.xposedLog("Android ID is null, not spoofing")
}
}
private fun getFingerprint():String {
return context.config.string(ConfigProperty.FINGERPRINT)
}
private fun getAndroidId():String {
return context.config.string(ConfigProperty.ANDROID_ID)
}
}

View File

@ -11,7 +11,6 @@ import me.rhunk.snapenhance.features.impl.downloader.AntiAutoDownload
import me.rhunk.snapenhance.features.impl.downloader.MediaDownloader
import me.rhunk.snapenhance.features.impl.experiments.AmoledDarkMode
import me.rhunk.snapenhance.features.impl.experiments.AppPasscode
import me.rhunk.snapenhance.features.impl.experiments.DeviceSpooferHook
import me.rhunk.snapenhance.features.impl.experiments.InfiniteStoryBoost
import me.rhunk.snapenhance.features.impl.experiments.MeoPasscodeBypass
import me.rhunk.snapenhance.features.impl.experiments.NoFriendScoreDelay
@ -91,7 +90,6 @@ class FeatureManager(private val context: ModContext) : Manager {
register(AmoledDarkMode::class)
register(PinConversations::class)
register(UnlimitedMultiSnap::class)
register(DeviceSpooferHook::class)
register(StartupPageOverride::class)
register(GooglePlayServicesDialogs::class)
register(NoFriendScoreDelay::class)

View File

@ -13,7 +13,6 @@ import me.rhunk.snapenhance.R
import me.rhunk.snapenhance.SharedContext
import me.rhunk.snapenhance.bridge.types.BridgeFileType
import me.rhunk.snapenhance.ui.config.ConfigActivity
import me.rhunk.snapenhance.ui.spoof.DeviceSpooferActivity
import java.io.File
class ActionListAdapter(
@ -71,9 +70,6 @@ class DebugSettingsLayoutInflater(
add(SharedContext.translation["config_activity.title"] to {
activity.startActivity(Intent(activity, ConfigActivity::class.java))
})
add(SharedContext.translation["spoof_activity.title"] to {
activity.startActivity(Intent(activity, DeviceSpooferActivity::class.java))
})
add(debugSettingsTranslation["clear_cache_title"] to {
context.cacheDir.listFiles()?.forEach {
it.deleteRecursively()

View File

@ -1,111 +0,0 @@
package me.rhunk.snapenhance.ui.spoof
import android.app.Activity
import android.content.res.ColorStateList
import android.os.Bundle
import android.text.InputType
import android.view.View
import android.view.ViewGroup
import android.widget.ImageButton
import android.widget.Switch
import android.widget.TextView
import me.rhunk.snapenhance.R
import me.rhunk.snapenhance.SharedContext
import me.rhunk.snapenhance.config.ConfigCategory
import me.rhunk.snapenhance.config.impl.ConfigIntegerValue
import me.rhunk.snapenhance.config.impl.ConfigStateValue
import me.rhunk.snapenhance.config.impl.ConfigStringValue
import me.rhunk.snapenhance.ui.ItemHelper
class DeviceSpooferActivity: Activity() {
private val itemHelper = ItemHelper(this)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
SharedContext.ensureInitialized(this)
setContentView(R.layout.device_spoofer_activity)
findViewById<TextView>(R.id.title).text = "Device Spoofer"
findViewById<ImageButton>(R.id.back_button).setOnClickListener { finish() }
val propertyListLayout = findViewById<ViewGroup>(R.id.spoof_property_list)
SharedContext.config.entries().filter { it.key.category == ConfigCategory.DEVICE_SPOOFER }.forEach { (property, value) ->
val configItem = layoutInflater.inflate(R.layout.config_activity_item, propertyListLayout, false)
val propertyName = SharedContext.translation["property.${property.translationKey}.name"]
fun addSeparator() {
//add separator
propertyListLayout.addView(View(this).apply {
layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1)
setBackgroundColor(getColor(R.color.tertiaryBackground))
})
}
configItem.findViewById<TextView>(R.id.name).text = propertyName
configItem.findViewById<TextView>(R.id.description).also {
it.text = SharedContext.translation["property.${property.translationKey}.description"]
it.visibility = if (it.text.isEmpty()) View.GONE else View.VISIBLE
}
fun addValueView(view: View) {
configItem.findViewById<ViewGroup>(R.id.value).addView(view)
}
when (value) {
is ConfigStateValue -> {
val switch = Switch(this)
switch.isChecked = value.value()
switch.trackTintList = ColorStateList(
arrayOf(
intArrayOf(android.R.attr.state_checked),
intArrayOf(-android.R.attr.state_checked)
),
intArrayOf(
switch.highlightColor,
getColor(R.color.tertiaryBackground)
)
)
switch.setOnCheckedChangeListener { _, isChecked ->
value.writeFrom(isChecked.toString())
}
configItem.setOnClickListener { switch.toggle() }
addValueView(switch)
}
is ConfigStringValue, is ConfigIntegerValue -> {
val textView = itemHelper.createTranslatedTextView(property, shouldTranslatePropertyValue = false).also {
it.text = value.value().toString()
}
configItem.setOnClickListener {
if (value is ConfigIntegerValue) {
itemHelper.askForValue(property, InputType.TYPE_CLASS_NUMBER) {
try {
value.writeFrom(it)
textView.text = value.value().toString()
} catch (e: NumberFormatException) {
itemHelper.longToast(SharedContext.translation["config_activity.invalid_number_toast"], this)
}
}
return@setOnClickListener
}
itemHelper.askForValue(property, InputType.TYPE_CLASS_TEXT) {
value.writeFrom(it)
textView.text = value.value().toString()
}
}
addValueView(textView)
}
}
propertyListLayout.addView(configItem)
addSeparator()
}
}
@Deprecated("Deprecated in Java")
@Suppress("DEPRECATION")
override fun onBackPressed() {
super.onBackPressed()
finish()
}
}