Allow blocking the private dns settings

This commit is contained in:
Jonas Lochmann 2022-11-28 01:00:00 +01:00
parent e6ad261ddc
commit 152e479d4c
No known key found for this signature in database
GPG key ID: 8B8C9AEE10FA5B36
3 changed files with 24 additions and 2 deletions

View file

@ -18,16 +18,27 @@ package io.timelimit.android.integration.platform.android
import android.app.admin.DevicePolicyManager import android.app.admin.DevicePolicyManager
import android.content.ComponentName import android.content.ComponentName
import android.content.Context import android.content.Context
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import android.os.UserManager import android.os.UserManager
import io.timelimit.android.R import io.timelimit.android.R
import io.timelimit.android.integration.platform.PlatformFeature import io.timelimit.android.integration.platform.PlatformFeature
object AndroidFeatures { object AndroidFeatures {
private const val FEATURE_ADB = "adb" private const val FEATURE_ADB = "adb"
private const val FEATURE_CONFIG_PRIVATE_DNS = "dns"
fun applyBlockedFeatures(features: Set<String>, policyManager: DevicePolicyManager, admin: ComponentName): Boolean { fun applyBlockedFeatures(features: Set<String>, policyManager: DevicePolicyManager, admin: ComponentName): Boolean {
if (features.contains(FEATURE_ADB)) policyManager.addUserRestriction(admin, UserManager.DISALLOW_DEBUGGING_FEATURES) fun apply(feature: String, restriction: String) {
else policyManager.clearUserRestriction(admin, UserManager.DISALLOW_DEBUGGING_FEATURES) if (features.contains(feature)) policyManager.addUserRestriction(admin, restriction)
else policyManager.clearUserRestriction(admin, restriction)
}
apply(FEATURE_ADB, UserManager.DISALLOW_DEBUGGING_FEATURES)
if (VERSION.SDK_INT >= VERSION_CODES.Q) {
apply(FEATURE_CONFIG_PRIVATE_DNS, UserManager.DISALLOW_CONFIG_PRIVATE_DNS)
}
return true return true
} }
@ -40,6 +51,15 @@ object AndroidFeatures {
title = context.getString(R.string.dummy_app_feature_adb) title = context.getString(R.string.dummy_app_feature_adb)
)) ))
if (VERSION.SDK_INT >= VERSION_CODES.Q) {
result.add(
PlatformFeature(
id = FEATURE_CONFIG_PRIVATE_DNS,
title = context.getString(R.string.dummy_app_feature_dns)
)
)
}
return result return result
} }
} }

View file

@ -1665,6 +1665,7 @@
<string name="dummy_app_unassigned_system_image_app">nicht zugeordnete Apps von der Systempartition</string> <string name="dummy_app_unassigned_system_image_app">nicht zugeordnete Apps von der Systempartition</string>
<string name="dummy_app_feature_adb">Entwickleroptionen</string> <string name="dummy_app_feature_adb">Entwickleroptionen</string>
<string name="dummy_app_feature_dns">DNS-Einstellungen</string>
<string name="dummy_app_activity_audio">Hintergrundmusikwiedergabe</string> <string name="dummy_app_activity_audio">Hintergrundmusikwiedergabe</string>
<string name="notify_permission_title">Benachrichtigungen</string> <string name="notify_permission_title">Benachrichtigungen</string>

View file

@ -1713,6 +1713,7 @@
<string name="dummy_app_unassigned_system_image_app">not assigned Apps from the system image</string> <string name="dummy_app_unassigned_system_image_app">not assigned Apps from the system image</string>
<string name="dummy_app_feature_adb">Developer Options</string> <string name="dummy_app_feature_adb">Developer Options</string>
<string name="dummy_app_feature_dns">DNS Settings</string>
<string name="dummy_app_activity_audio">Background Audio Playback</string> <string name="dummy_app_activity_audio">Background Audio Playback</string>
<string name="notify_permission_title">Notifications</string> <string name="notify_permission_title">Notifications</string>