mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
chore: Remove TrustExtension
This commit is contained in:
parent
6d542c3006
commit
617e63e09a
5 changed files with 15 additions and 42 deletions
|
@ -1,29 +0,0 @@
|
||||||
package dev.yokai.domain.extension
|
|
||||||
|
|
||||||
import android.content.pm.PackageInfo
|
|
||||||
import androidx.core.content.pm.PackageInfoCompat
|
|
||||||
import dev.yokai.domain.source.SourcePreferences
|
|
||||||
import uy.kohesive.injekt.Injekt
|
|
||||||
import uy.kohesive.injekt.api.get
|
|
||||||
|
|
||||||
class TrustExtension(
|
|
||||||
private val sourcePreferences: SourcePreferences = Injekt.get(),
|
|
||||||
) {
|
|
||||||
fun isTrusted(pkgInfo: PackageInfo, signatureHash: String): Boolean {
|
|
||||||
val key = "${pkgInfo.packageName}:${PackageInfoCompat.getLongVersionCode(pkgInfo)}:$signatureHash"
|
|
||||||
return key in sourcePreferences.trustedExtensions().get()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun trust(pkgName: String, versionCode: Long, signatureHash: String) {
|
|
||||||
sourcePreferences.trustedExtensions().let { exts ->
|
|
||||||
val removed = exts.get().filterNot { it.startsWith("$pkgName:") }.toMutableSet()
|
|
||||||
|
|
||||||
removed += "$pkgName:$versionCode:$signatureHash"
|
|
||||||
exts.set(removed)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun revokeAll() {
|
|
||||||
sourcePreferences.trustedExtensions().delete()
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.di
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import dev.yokai.domain.extension.TrustExtension
|
|
||||||
import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore
|
import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore
|
||||||
import eu.kanade.tachiyomi.core.preference.PreferenceStore
|
import eu.kanade.tachiyomi.core.preference.PreferenceStore
|
||||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||||
|
@ -62,8 +61,6 @@ class AppModule(val app: Application) : InjektModule {
|
||||||
|
|
||||||
addSingletonFactory { MangaShortcutManager() }
|
addSingletonFactory { MangaShortcutManager() }
|
||||||
|
|
||||||
addSingletonFactory { TrustExtension() }
|
|
||||||
|
|
||||||
// Asynchronously init expensive components for a faster cold start
|
// Asynchronously init expensive components for a faster cold start
|
||||||
|
|
||||||
ContextCompat.getMainExecutor(app).execute {
|
ContextCompat.getMainExecutor(app).execute {
|
||||||
|
|
|
@ -4,9 +4,8 @@ import android.content.Context
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import dev.yokai.domain.extension.TrustExtension
|
import dev.yokai.domain.source.SourcePreferences
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.preference.plusAssign
|
|
||||||
import eu.kanade.tachiyomi.extension.api.ExtensionApi
|
import eu.kanade.tachiyomi.extension.api.ExtensionApi
|
||||||
import eu.kanade.tachiyomi.extension.model.Extension
|
import eu.kanade.tachiyomi.extension.model.Extension
|
||||||
import eu.kanade.tachiyomi.extension.model.InstallStep
|
import eu.kanade.tachiyomi.extension.model.InstallStep
|
||||||
|
@ -41,7 +40,7 @@ import java.util.Locale
|
||||||
class ExtensionManager(
|
class ExtensionManager(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val preferences: PreferencesHelper = Injekt.get(),
|
private val preferences: PreferencesHelper = Injekt.get(),
|
||||||
private val trustExtension: TrustExtension = Injekt.get(),
|
private val sourcePreferences: SourcePreferences = Injekt.get(),
|
||||||
) {
|
) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -317,7 +316,12 @@ class ExtensionManager(
|
||||||
val untrustedPkgName = untrustedExtensionsFlow.value.map { it.pkgName }.toSet()
|
val untrustedPkgName = untrustedExtensionsFlow.value.map { it.pkgName }.toSet()
|
||||||
if (pkgName !in untrustedPkgName) return
|
if (pkgName !in untrustedPkgName) return
|
||||||
|
|
||||||
trustExtension.trust(pkgName, versionCode, signatureHash)
|
sourcePreferences.trustedExtensions().let { exts ->
|
||||||
|
val removed = exts.get().filterNot { it.startsWith("$pkgName:") }.toMutableSet()
|
||||||
|
|
||||||
|
removed += "$pkgName:$versionCode:$signatureHash"
|
||||||
|
exts.set(removed)
|
||||||
|
}
|
||||||
|
|
||||||
val nowTrustedExtensions = untrustedExtensionsFlow.value
|
val nowTrustedExtensions = untrustedExtensionsFlow.value
|
||||||
.filter { it.pkgName == pkgName && it.versionCode == versionCode }
|
.filter { it.pkgName == pkgName && it.versionCode == versionCode }
|
||||||
|
|
|
@ -8,7 +8,7 @@ import android.content.pm.PackageManager
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.core.content.pm.PackageInfoCompat
|
import androidx.core.content.pm.PackageInfoCompat
|
||||||
import dalvik.system.PathClassLoader
|
import dalvik.system.PathClassLoader
|
||||||
import dev.yokai.domain.extension.TrustExtension
|
import dev.yokai.domain.source.SourcePreferences
|
||||||
import eu.kanade.tachiyomi.BuildConfig
|
import eu.kanade.tachiyomi.BuildConfig
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.extension.model.Extension
|
import eu.kanade.tachiyomi.extension.model.Extension
|
||||||
|
@ -34,7 +34,7 @@ import java.nio.file.attribute.BasicFileAttributes
|
||||||
internal object ExtensionLoader {
|
internal object ExtensionLoader {
|
||||||
|
|
||||||
private val preferences: PreferencesHelper by injectLazy()
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
private val trustExtension: TrustExtension by injectLazy()
|
private val sourcePreferences: SourcePreferences by injectLazy()
|
||||||
private val loadNsfwSource by lazy {
|
private val loadNsfwSource by lazy {
|
||||||
preferences.showNsfwSources().get()
|
preferences.showNsfwSources().get()
|
||||||
}
|
}
|
||||||
|
@ -429,7 +429,8 @@ internal object ExtensionLoader {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isTrusted(pkgInfo: PackageInfo, signatures: List<String>): Boolean {
|
private fun isTrusted(pkgInfo: PackageInfo, signatures: List<String>): Boolean {
|
||||||
return trustExtension.isTrusted(pkgInfo, signatures.last())
|
val key = "${pkgInfo.packageName}:${PackageInfoCompat.getLongVersionCode(pkgInfo)}:${signatures.last()}"
|
||||||
|
return key in sourcePreferences.trustedExtensions().get()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -16,7 +16,7 @@ import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.preference.PreferenceScreen
|
import androidx.preference.PreferenceScreen
|
||||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
import com.google.firebase.crashlytics.ktx.crashlytics
|
||||||
import com.google.firebase.ktx.Firebase
|
import com.google.firebase.ktx.Firebase
|
||||||
import dev.yokai.domain.extension.TrustExtension
|
import dev.yokai.domain.source.SourcePreferences
|
||||||
import eu.kanade.tachiyomi.BuildConfig
|
import eu.kanade.tachiyomi.BuildConfig
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||||
|
@ -79,7 +79,7 @@ class SettingsAdvancedController : SettingsController() {
|
||||||
|
|
||||||
private val downloadManager: DownloadManager by injectLazy()
|
private val downloadManager: DownloadManager by injectLazy()
|
||||||
|
|
||||||
private val trustExtension: TrustExtension by injectLazy()
|
private val sourcePreferences: SourcePreferences by injectLazy()
|
||||||
|
|
||||||
private val isUpdaterEnabled = BuildConfig.INCLUDE_UPDATER
|
private val isUpdaterEnabled = BuildConfig.INCLUDE_UPDATER
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ class SettingsAdvancedController : SettingsController() {
|
||||||
title = "Revoke all"
|
title = "Revoke all"
|
||||||
|
|
||||||
onClick {
|
onClick {
|
||||||
trustExtension.revokeAll()
|
sourcePreferences.trustedExtensions().delete()
|
||||||
activity?.toast(R.string.requires_app_restart)
|
activity?.toast(R.string.requires_app_restart)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue