Remove REQUEST_INSTALL_PACKAGES permission
This commit is contained in:
parent
53348ae61a
commit
876d01da00
4 changed files with 16 additions and 34 deletions
|
|
@ -53,12 +53,10 @@ android {
|
|||
play {
|
||||
buildConfigField 'boolean', 'FIREBASE_AVAILABLE', 'true'
|
||||
buildConfigField 'boolean', 'RATE_APP_AVAILABLE', 'true'
|
||||
buildConfigField 'boolean', 'INSTALL_PACKAGES_AVAILABLE', 'false'
|
||||
}
|
||||
fdroid {
|
||||
buildConfigField 'boolean', 'FIREBASE_AVAILABLE', 'false'
|
||||
buildConfigField 'boolean', 'RATE_APP_AVAILABLE', 'false'
|
||||
buildConfigField 'boolean', 'INSTALL_PACKAGES_AVAILABLE', 'true'
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -82,22 +80,6 @@ android.applicationVariants.all { variant ->
|
|||
googleTask.enabled = shouldProcessGoogleServices
|
||||
}
|
||||
|
||||
// Strips out REQUEST_INSTALL_PACKAGES permission for Google Play variant
|
||||
android.applicationVariants.all { variant ->
|
||||
def shouldStripInstallPermission = variant.flavorName == "play"
|
||||
if (shouldStripInstallPermission) {
|
||||
variant.outputs.each { output ->
|
||||
def processManifest = output.getProcessManifestProvider().get()
|
||||
processManifest.doLast { task ->
|
||||
def outputDir = task.getMultiApkManifestOutputDirectory().get().asFile
|
||||
def manifestOutFile = file("$outputDir/AndroidManifest.xml")
|
||||
def newFileContents = manifestOutFile.collect { s -> s.contains("android.permission.REQUEST_INSTALL_PACKAGES") ? "" : s }.join("\n")
|
||||
manifestOutFile.write(newFileContents, 'UTF-8')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// AndroidX, The Basics
|
||||
implementation "androidx.appcompat:appcompat:1.6.1"
|
||||
|
|
|
|||
|
|
@ -12,14 +12,6 @@
|
|||
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/> <!-- To reschedule the websocket retry -->
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <!-- As of Android 13, we need to ask for permission to post notifications -->
|
||||
|
||||
<!--
|
||||
Permission REQUEST_INSTALL_PACKAGES (F-Droid only!):
|
||||
- Permission is used to install .apk files that were received as attachments
|
||||
- Google rejected the permission for ntfy, so this permission is STRIPPED OUT by the build process
|
||||
for the Google Play variant of the app.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
|
||||
|
||||
<application
|
||||
android:name=".app.Application"
|
||||
android:allowBackup="true"
|
||||
|
|
|
|||
|
|
@ -19,17 +19,21 @@ import android.provider.OpenableColumns
|
|||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.util.Base64
|
||||
import android.util.TypedValue
|
||||
import android.view.View
|
||||
import android.view.Window
|
||||
import android.widget.Button
|
||||
import android.widget.ImageView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.core.content.ContextCompat
|
||||
import io.heckel.ntfy.BuildConfig
|
||||
import io.heckel.ntfy.R
|
||||
import io.heckel.ntfy.db.*
|
||||
import io.heckel.ntfy.db.ACTION_PROGRESS_FAILED
|
||||
import io.heckel.ntfy.db.ACTION_PROGRESS_ONGOING
|
||||
import io.heckel.ntfy.db.ACTION_PROGRESS_SUCCESS
|
||||
import io.heckel.ntfy.db.Action
|
||||
import io.heckel.ntfy.db.Attachment
|
||||
import io.heckel.ntfy.db.Notification
|
||||
import io.heckel.ntfy.db.Repository
|
||||
import io.heckel.ntfy.db.Subscription
|
||||
import io.heckel.ntfy.msg.MESSAGE_ENCODING_BASE64
|
||||
import io.heckel.ntfy.ui.Colors
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
|
@ -48,7 +52,7 @@ import java.security.MessageDigest
|
|||
import java.security.SecureRandom
|
||||
import java.text.DateFormat
|
||||
import java.text.StringCharacterIterator
|
||||
import java.util.*
|
||||
import java.util.Date
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.absoluteValue
|
||||
|
||||
|
|
@ -336,10 +340,11 @@ fun supportedImage(mimeType: String?): Boolean {
|
|||
return listOf("image/jpeg", "image/png", "image/gif", "image/webp").contains(mimeType)
|
||||
}
|
||||
|
||||
// Google Play doesn't allow us to install received .apk files anymore.
|
||||
// See https://github.com/binwiederhier/ntfy/issues/531
|
||||
// We cannot open .apk files, because we don't have the REQUEST_INSTALL_PACKAGES anymore
|
||||
// Play didn't grant us the permission, and F-Droid users didn't want us to have it.
|
||||
// See https://github.com/binwiederhier/ntfy/issues/531 & https://github.com/binwiederhier/ntfy/issues/684
|
||||
fun canOpenAttachment(attachment: Attachment?): Boolean {
|
||||
if (attachment?.type == ANDROID_APP_MIME_TYPE && !BuildConfig.INSTALL_PACKAGES_AVAILABLE) {
|
||||
if (attachment?.type == ANDROID_APP_MIME_TYPE) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
Features:
|
||||
* Added GIF support for preview images (ntfy-android#76, thanks to @MichaelArkh)
|
||||
* Added WebP support for preview images (ntfy-android#81, thanks to @jokakilla)
|
||||
|
||||
Bug fixes + maintenance:
|
||||
* Remove REQUEST_INSTALL_PACKAGES permission (#684)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue