Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

why flutter has android.permission.REQUEST_INSTALL_PACKAGES

i upload my bundle to google play and show me this permissions which contain android.permission.REQUEST_INSTALL_PACKAGES

and this is my AndroidManifest file content:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.flutter.application">

<!-- The INTERNET permission is required for development. Specifically,
     flutter needs it to communicate with the running application
     to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET"/>
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
     calls FlutterMain.startInitialization(this); in its onCreate method.
     In most cases you can leave this as-is, but you if you want to provide
     additional functionality it is fine to subclass or reimplement
     FlutterApplication and put your custom class here. -->
<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="flutter"
    android:icon="@mipmap/ic_launcher">
    <activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <!-- This keeps the window background of the activity showing
             until Flutter renders its first frame. It can be removed if
             there is no splash screen (such as the default splash screen
             defined in @style/LaunchTheme). -->
        <meta-data
            android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
            android:value="true" />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <intent-filter>
            <action android:name="FLUTTER_NOTIFICATION_CLICK" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.yalantis.ucrop.UCropActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
</application>

what is this permission and how i can handle it or remove it from my package and when i install my app on phone this permission not show?

like image 957
Amir Avatar asked Sep 07 '25 22:09

Amir


2 Answers

As like the answers above it could have been requested by many packages. It can be made to be removed from the final manifest.xml by add these in the Androidmanifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" //Add this line
    package="com.example.app">

    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove"/>  //Add this line

The tools:node='remove' will remove the permission from final manifest.xml

This technique can be used to remove other permissions also.

like image 147
Arun Jayaramakrishnan Avatar answered Sep 09 '25 13:09

Arun Jayaramakrishnan


ok i found why android.permission.REQUEST_INSTALL_PACKAGES permission added to package this is because file_open package has this permission and it added to project automatically

like image 35
Amir Avatar answered Sep 09 '25 12:09

Amir