πŸ”Œ 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>
    <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 PLUGIN FEATURES
  • !! 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