Convert Figma logo to code with AI

Aefyr logoSAI

Android split APKs installer

2,372
248
2,372
1

Top Related Projects

Termux - a terminal emulator application for Android OS extendible by variety of packages.

47,030

The Magic Mask for Android

An F-Droid client with modern UI and an arsenal of extra features.

3,580

F-Droid client with Material UI.

Quick Overview

SAI (Split APKs Installer) is an Android app that allows users to install split APKs, also known as App Bundles. It provides a user-friendly interface for installing and managing these multi-part applications, which are becoming increasingly common on the Google Play Store.

Pros

  • Simplifies the process of installing split APKs on Android devices
  • Supports installation of multiple APK files simultaneously
  • Offers a built-in APK analyzer for detailed information about app packages
  • Provides a clean and intuitive user interface

Cons

  • Requires granting special permissions for installation, which may concern some users
  • Limited to Android devices and cannot be used on other platforms
  • May not work with all types of split APKs or app bundles
  • Potential security risks if used to install APKs from untrusted sources

Getting Started

To use SAI, follow these steps:

  1. Download the latest release of SAI from the GitHub releases page.
  2. Install the APK on your Android device.
  3. Grant the necessary permissions when prompted.
  4. Open SAI and select the "Install APKs" option.
  5. Choose the split APK files you want to install.
  6. Tap "Install" and follow the on-screen instructions to complete the installation.

Note: SAI requires Android 5.0 or higher to function properly.

Competitor Comparisons

Termux - a terminal emulator application for Android OS extendible by variety of packages.

Pros of termux-app

  • More comprehensive terminal emulator and Linux environment for Android
  • Larger community and more frequent updates
  • Supports a wide range of Linux packages and tools

Cons of termux-app

  • Steeper learning curve for non-technical users
  • Requires more system resources and storage space
  • Not specifically designed for APK installation and management

Code Comparison

termux-app (Java):

public class TermuxActivity extends Activity {
    private TerminalView mTerminalView;
    private TermuxService mTermuxService;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_termux);
    }
}

SAI (Kotlin):

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
    }
}

Summary

termux-app is a powerful terminal emulator and Linux environment for Android, offering a wide range of functionality and tools. It has a larger community and more frequent updates compared to SAI. However, it has a steeper learning curve and requires more system resources.

SAI, on the other hand, is specifically designed for APK installation and management, making it more user-friendly for those tasks. It has a simpler interface and focuses on a specific set of features related to app installation.

The code comparison shows that termux-app uses Java, while SAI is written in Kotlin, reflecting their different approaches and target audiences.

47,030

The Magic Mask for Android

Pros of Magisk

  • More comprehensive root solution with system-level modifications
  • Larger community and more extensive module ecosystem
  • Regular updates and active development

Cons of Magisk

  • Requires more technical knowledge to use effectively
  • Can potentially void device warranty or cause system instability if misused

Code Comparison

Magisk (C++):

static int mount_root(const char *block_dev, const char *mnt_point) {
    char device[256];
    strcpy(device, block_dev);
    if (strncmp(device, "/dev/", 5) == 0)
        strcpy(device, &device[5]);

    return mount(block_dev, mnt_point, "ext4", MS_RDONLY, nullptr);
}

SAI (Java):

private void extractSplit(File split, File destination) throws IOException {
    try (ZipFile zipFile = new ZipFile(split)) {
        ZipEntry dexEntry = zipFile.getEntry("classes.dex");
        if (dexEntry != null) {
            Utils.copyFile(zipFile.getInputStream(dexEntry), new FileOutputStream(destination));
        }
    }
}

While both projects deal with Android system modifications, Magisk focuses on root access and system-wide changes, whereas SAI is primarily an APK installer and splitter. Magisk's code involves low-level system operations, while SAI deals with APK file manipulation. Magisk is more complex and powerful, but SAI is more user-friendly for specific APK-related tasks.

An F-Droid client with modern UI and an arsenal of extra features.

Pros of Neo-Store

  • Open-source and actively maintained, with regular updates and improvements
  • Supports a wider range of F-Droid repositories and custom sources
  • More advanced filtering and sorting options for app discovery

Cons of Neo-Store

  • Less intuitive user interface compared to SAI's streamlined design
  • May have a steeper learning curve for new users
  • Potentially slower app installation process due to additional features

Code Comparison

SAI (Java):

public class SaiPiService extends PiService {
    @Override
    protected void onHandleIntent(Intent intent) {
        // Handle installation intent
    }
}

Neo-Store (Kotlin):

class AppInstallManager @Inject constructor(
    private val context: Context,
    private val packageManager: PackageManager
) {
    fun installApp(apkFile: File) {
        // Install app logic
    }
}

Both repositories focus on Android app installation, but Neo-Store offers a more comprehensive F-Droid client experience, while SAI specializes in split APK installation. Neo-Store is written in Kotlin, utilizing modern Android development practices, whereas SAI is primarily Java-based. The code snippets showcase the different approaches to app installation, with Neo-Store using dependency injection and a dedicated manager class.

3,580

F-Droid client with Material UI.

Pros of Droid-ify

  • Actively maintained with more recent updates
  • Focuses specifically on F-Droid client functionality
  • Cleaner, more modern user interface

Cons of Droid-ify

  • More limited in scope compared to SAI's broader APK installation capabilities
  • Potentially less flexible for advanced users who need SAI's specific features
  • Smaller community and fewer contributors

Code Comparison

SAI (Java):

public class SaiPiService extends PiService {
    @Override
    protected void onHandleIntent(Intent intent) {
        // SAI-specific implementation
    }
}

Droid-ify (Kotlin):

class DroidifyService : Service() {
    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        // Droid-ify-specific implementation
        return START_NOT_STICKY
    }
}

The code snippets show different approaches to service implementation, with SAI using Java and a PiService extension, while Droid-ify uses Kotlin and a standard Android Service. This reflects the overall architectural differences between the two projects.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Split APKs Installer

SAI: Crowdin Filepicker lib: Crowdin

SAI (Split APKs Installer) is an Android app that lets you install split APKs (such as ones distributed as Android App Bundle). It has both rooted and rootless installation methods.

Get it on F-Droid Get it on Google Play

State of SAI

SAI is kinda dead cause I have no motivation for continuing its development. I will probably maybe still occasionally fix bugs and add small features/improvements, focusing on the installer functionality, but idk. If you're looking for an actual backup solution, you can try OAndBackupX or Swift Backup.

Contributing

Please read Contributing guide

Exported .apks files meta

SAI adds some meta information to .apks files it exports, you can find the description of the format it uses in the Meta format description

License

SAI is licensed under GPLv3