/AlterInstaller

Spoof Android package manager installer fields

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

AlterInstaller

latest release badge license badge

AlterInstaller is a simple Magisk/KernelSU module that changes apps' installer and initiating installer fields in the Android package manager database. This makes it possible to spoof where an app is installed from.

The module directly modifies /data/system/packages.xml before the package manager service starts and thus, does not require runtime code injection (eg. Zygisk). Because this state file is modified, the changes persist even if the module is uninstalled.

Supports Android 12 and newer only.

Usage

  1. Download the latest version from the releases page. To verify the digital signature, see the verifying digital signatures section.

  2. Install the module from the Magisk/KernelSU app.

  3. Create /data/local/tmp/AlterInstaller.properties listing the package IDs to modify:

    # Syntax: <Package> = <Installer>
    # For example, to mark VLC as being installed by the Play Store:
    org.videolan.vlc = com.android.vending
  4. Reboot. The log file is written to /data/local/tmp/AlterInstaller.log.

    If an app is updated and it no longer reports as being installed by the specified installer, just reboot again.

Verifying digital signatures

First save the public key to a file that lists which keys should be trusted.

echo 'AlterInstaller ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDOe6/tBnO7xZhAWXRj3ApUYgn+XZ0wnQiXM8B7tPgv4' > AlterInstaller_trusted_keys

Then, verify the signature of the zip file using the list of trusted keys.

ssh-keygen -Y verify -f AlterInstaller_trusted_keys -I AlterInstaller -n file -s AlterInstaller-<version>-release.zip.sig < AlterInstaller-<version>-release.zip

If the file is successfully verified, the output will be:

Good "file" signature for AlterInstaller with ED25519 key SHA256:Ct0HoRyrFLrnF9W+A/BKEiJmwx7yWkgaW/JvghKrboA

Building from source

AlterInstaller can be built like most other Android projects using Android Studio or the gradle command line.

To build the module zip:

./gradlew zipRelease

The output file is written to app/build/distributions/release/.

License

AlterInstaller is licensed under GPLv3. Please see LICENSE for the full license text.