Skip to content

Commit

Permalink
Build100.2.3
Browse files Browse the repository at this point in the history
  - Migrated to newer trackers interface
  • Loading branch information
Hamza417 committed Mar 10, 2024
1 parent 2071978 commit 6bad2c4
Show file tree
Hide file tree
Showing 10 changed files with 48 additions and 2,110 deletions.
5 changes: 1 addition & 4 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

39 changes: 30 additions & 9 deletions app/src/main/java/app/simple/inure/util/TrackerUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package app.simple.inure.util

import android.content.Context
import android.content.pm.PackageInfo
import app.simple.inure.R
import app.simple.inure.apk.utils.ReceiversUtils
import app.simple.inure.apk.utils.ServicesUtils
import app.simple.inure.models.Tracker
Expand Down Expand Up @@ -32,17 +31,39 @@ import javax.xml.transform.stream.StreamResult
object TrackerUtils {

private const val TRACKERS_JSON = "/trackers.json"
private const val TAG = "TrackersUtils"

fun Context.getTrackerSignatures(): List<String> {
val trackers = resources.getStringArray(R.array.trackers).filter {
it.isNullOrEmpty().invert()
}
fun getTrackerSignatures(): List<String> {
ProcessUtils.ensureNotOnMainThread {
val bufferedReader = BufferedReader(InputStreamReader(
TrackerUtils::class.java.getResourceAsStream(TRACKERS_JSON)))
val stringBuilder = StringBuilder()
var line: String?
while (bufferedReader.readLine().also { line = it } != null) {
stringBuilder.append(line)
}

val oldTrackers = resources.getStringArray(R.array.old_trackers).filter {
it.isNullOrEmpty().invert()
}
val json = stringBuilder.toString()
val jsonObject = JSONObject(json)
val trackers = jsonObject.getJSONObject("trackers")
val signatures = arrayListOf<String>()

return (trackers + oldTrackers).distinct()
val keysIterator = trackers.keys()

while (keysIterator.hasNext()) {
val key = keysIterator.next()
val tracker = trackers.getJSONObject(key)
val codeSignature = tracker.getString("code_signature")

codeSignature.split("|").forEach {
if (it.isNotEmpty()) {
signatures.add(it)
}
}
}

return signatures
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import app.simple.inure.util.ArrayUtils.toArrayList
import app.simple.inure.util.ConditionUtils.invert
import app.simple.inure.util.FileUtils.toFile
import app.simple.inure.util.FlagUtils
import app.simple.inure.util.TrackerUtils.getTrackerSignatures
import app.simple.inure.util.TrackerUtils
import com.topjohnwu.superuser.Shell
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
Expand Down Expand Up @@ -348,7 +348,7 @@ class AppInfoMenuViewModel(application: Application, val packageInfo: PackageInf
}
}

val trackers = application.getTrackerSignatures()
val trackers = TrackerUtils.getTrackerSignatures()
var count = 0

if (packageInfo.activities != null) {
Expand Down Expand Up @@ -510,4 +510,4 @@ class AppInfoMenuViewModel(application: Application, val packageInfo: PackageInf
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import app.simple.inure.extensions.viewmodels.WrappedViewModel
import app.simple.inure.models.ActivityInfoModel
import app.simple.inure.preferences.SearchPreferences
import app.simple.inure.util.ActivityUtils
import app.simple.inure.util.TrackerUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

Expand All @@ -37,7 +38,7 @@ class ActivitiesViewModel(application: Application, private val packageInfo: Pac
viewModelScope.launch(Dispatchers.IO) {
kotlin.runCatching {
val list = arrayListOf<ActivityInfoModel>()
val signatures: Array<String> = context.resources.getStringArray(R.array.trackers)
val signatures = TrackerUtils.getTrackerSignatures()
val isInstalled = packageManager.isPackageInstalled(packageInfo.packageName)

for (ai in getPackageInfo(isInstalled).activities) {
Expand Down Expand Up @@ -101,4 +102,4 @@ class ActivitiesViewModel(application: Application, private val packageInfo: Pac
PackageManager.GET_ACTIVITIES or PackageManager.GET_DISABLED_COMPONENTS)!!
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import app.simple.inure.util.SDKHelper
import app.simple.inure.util.StringUtils.applyAccentColor
import app.simple.inure.util.StringUtils.applySecondaryTextColor
import app.simple.inure.util.StringUtils.endsWithAny
import app.simple.inure.util.TrackerUtils.getTrackerSignatures
import app.simple.inure.util.TrackerUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import net.dongliu.apk.parser.bean.ApkMeta
Expand Down Expand Up @@ -499,7 +499,7 @@ class AppInformationViewModel(application: Application, private var packageInfo:
}

private fun getTrackers(): Pair<Int, Spannable> {
val trackers = applicationContext().getTrackerSignatures()
val trackers = TrackerUtils.getTrackerSignatures()
var count = 0
val list: MutableList<String> = mutableListOf()

Expand Down Expand Up @@ -590,4 +590,4 @@ class AppInformationViewModel(application: Application, private var packageInfo:
return Pair(R.string.uses_feature,
features.toString().applySecondaryTextColor())
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import android.os.Build
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
import app.simple.inure.R
import app.simple.inure.apk.utils.MetaUtils
import app.simple.inure.apk.utils.PackageUtils.isPackageInstalled
import app.simple.inure.extensions.viewmodels.WrappedViewModel
import app.simple.inure.models.ProviderInfoModel
import app.simple.inure.preferences.SearchPreferences
import app.simple.inure.util.TrackerUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

Expand Down Expand Up @@ -40,7 +40,7 @@ class ProvidersViewModel(application: Application, val packageInfo: PackageInfo)

for (pi in getPackageInfo(isInstalled).providers) {
val providerInfoModel = ProviderInfoModel()
val signatures: Array<String> = context.resources.getStringArray(R.array.trackers)
val signatures = TrackerUtils.getTrackerSignatures()

providerInfoModel.providerInfo = pi
providerInfoModel.name = pi.name
Expand Down Expand Up @@ -97,4 +97,4 @@ class ProvidersViewModel(application: Application, val packageInfo: PackageInfo)
PackageManager.GET_PROVIDERS or PackageManager.GET_DISABLED_COMPONENTS)!!
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import app.simple.inure.apk.utils.PackageUtils.isPackageInstalled
import app.simple.inure.extensions.viewmodels.WrappedViewModel
import app.simple.inure.models.ActivityInfoModel
import app.simple.inure.preferences.SearchPreferences
import app.simple.inure.util.TrackerUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

Expand All @@ -36,7 +37,7 @@ class ReceiversViewModel(application: Application, val packageInfo: PackageInfo)
viewModelScope.launch(Dispatchers.Default) {
kotlin.runCatching {
val list = arrayListOf<ActivityInfoModel>()
val signatures: Array<String> = context.resources.getStringArray(R.array.trackers)
val signatures = TrackerUtils.getTrackerSignatures()
val isInstalled = packageManager.isPackageInstalled(packageInfo.packageName)

for (ai in getPackageInfo(isInstalled).receivers) {
Expand Down Expand Up @@ -98,4 +99,4 @@ class ReceiversViewModel(application: Application, val packageInfo: PackageInfo)
PackageManager.GET_RECEIVERS or PackageManager.GET_DISABLED_COMPONENTS)!!
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import app.simple.inure.apk.utils.PackageUtils.isPackageInstalled
import app.simple.inure.extensions.viewmodels.WrappedViewModel
import app.simple.inure.models.ServiceInfoModel
import app.simple.inure.preferences.SearchPreferences
import app.simple.inure.util.TrackerUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

Expand All @@ -36,7 +37,7 @@ class ServicesViewModel(application: Application, private val packageInfo: Packa
viewModelScope.launch(Dispatchers.Default) {
kotlin.runCatching {
val list = arrayListOf<ServiceInfoModel>()
val signatures: Array<String> = context.resources.getStringArray(R.array.trackers)
val signatures = TrackerUtils.getTrackerSignatures()
val isInstalled = packageManager.isPackageInstalled(packageInfo.packageName)

for (info in getPackageInfo(isInstalled).services) {
Expand Down
Loading

0 comments on commit 6bad2c4

Please sign in to comment.