From 43aa10cab22c9769f69a1f6e91681d59839ba7b1 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 6 Nov 2024 18:05:02 +0530 Subject: [PATCH] ServiceInstaller: Only give read URI permission to aurora services Signed-off-by: Aayush Gupta --- .../store/data/installer/InstallerBase.kt | 2 +- .../store/data/installer/ServiceInstaller.kt | 26 +++++++------------ 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/aurora/store/data/installer/InstallerBase.kt b/app/src/main/java/com/aurora/store/data/installer/InstallerBase.kt index 717533fb8..d5e771721 100644 --- a/app/src/main/java/com/aurora/store/data/installer/InstallerBase.kt +++ b/app/src/main/java/com/aurora/store/data/installer/InstallerBase.kt @@ -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", diff --git a/app/src/main/java/com/aurora/store/data/installer/ServiceInstaller.kt b/app/src/main/java/com/aurora/store/data/installer/ServiceInstaller.kt index 3c3d575b9..3ab9f9bcc 100644 --- a/app/src/main/java/com/aurora/store/data/installer/ServiceInstaller.kt +++ b/app/src/main/java/com/aurora/store/data/installer/ServiceInstaller.kt @@ -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 - } }