🔌 Shizuku API Flutter Plugin

Access the Shizuku API seamlessly in your Flutter apps! 🚀

🌟 About

This plugin powers my Play Store application System App Remover, which allows users to remove system apps (bloatware) effortlessly without requiring root access or a computer(Android 10 and below still needs computer to run Shizuku).

⚡ Installation

Add the plugin to your project:

  
  flutter pub add shizuku_api
  

📋 Requirements

  • 📱 Shizuku app should be installed and running

🔧 Configuration

📝 app/build.gradle

  • minSdk should be >= 24

📝 AndroidManifest.xml add this inside application tag:

   <application>
   <!-- other code>

   
    <provider
            android:name="rikka.shizuku.ShizukuProvider"
            android:authorities="${applicationId}.shizuku"
            android:multiprocess="false"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.INTERACT_ACROSS_USERS_FULL" />
   </application>

🚀 Usage

  • ⚠️ Important: DO THIS BEFORE CALLING ANY OTHER
  • !! Shizuku should be installed
  • ✅ Check if Shizuku is running first
  bool isBinderRunning = await _shizukuApiPlugin.pingBinder() ?? false; // tries to ping shizuku
  
  • 🛠️ check Shizuku Permission

      final _shizukuApiPlugin = ShizukuApi();
    
      // checks if shizuku permission granted by user
      //returns true if previously allowed permission or false if permission declined /never requested
      bool checkPermission = await  _shizukuApiPlugin.checkPermission();
    
      print(checkPermission);
      
    
  • 🛠️ request Shizuku Permission

      final _shizukuApiPlugin = ShizukuApi();
      
      // triggers shizuku popup
      //returns true if Permission allowed or false if declined
      bool requestPermission = await  _shizukuApiPlugin.requestPermission(); 
      
      print(requestPermission);
      
    
  • 💻 Run Commands

    • Root environment (su) is not tested
    • ✅ Can run ADB shell commands (working fine)
      String command = 'pm uninstall --user 0 com.android.chrome';
      await _shizukuApiPlugin.runCommand(command); // returns success if Uninstalled system app / Failure if failed