ServiceInstaller: Only give read URI permission to aurora services

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-11-06 18:05:02 +05:30
parent 2e8db03b11
commit 43aa10cab2
2 changed files with 10 additions and 18 deletions

View File

@@ -89,7 +89,7 @@ abstract class InstallerBase(protected var context: Context) : IInstaller {
return downloadDir.listFiles()!!.filter { it.path.endsWith(".apk") }
}
open fun getUri(file: File): Uri {
fun getUri(file: File): Uri {
return FileProvider.getUriForFile(
context,
"${BuildConfig.APPLICATION_ID}.fileProvider",

View File

@@ -88,7 +88,15 @@ class ServiceInstaller @Inject constructor(
val fileList = getFiles(download.packageName, download.versionCode)
xInstall(
download.packageName,
fileList.map { getUri(it) },
fileList.map { file ->
getUri(file).also { uri ->
context.grantUriPermission(
PRIVILEGED_EXTENSION_PACKAGE_NAME,
uri,
Intent.FLAG_GRANT_READ_URI_PERMISSION
)
}
},
fileList.map { it.absolutePath }
)
}
@@ -286,20 +294,4 @@ class ServiceInstaller @Inject constructor(
th.printStackTrace()
}
}
override fun getUri(file: File): Uri {
val uri = FileProvider.getUriForFile(
context,
"${BuildConfig.APPLICATION_ID}.fileProvider",
file
)
context.grantUriPermission(
PRIVILEGED_EXTENSION_PACKAGE_NAME,
uri,
Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
)
return uri
}
}