Package: apkinjector
APK InjectorPluginable tool to automate injection of libraries in apks, with support for unpack, repack, and bundles.APK InjectorFeaturesInstallationUsageFridaInjectApk utilsPluginsUsing as a moduleUsage as a pluginFeaturesInsert libraries and load them when an activity starts.Frida support with support to load frida scripts either from disc or codeshare.Bundle support. Apks exported from SAI or XApks downloaded from apkpure.Plugins support. Check plugins/plugins.json and plugin_example.pyInstallationpip3 install apkinjectorUsageapkinjector [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  apk      Apk utils
  frida    Inject a frida gadget in a target apk.
  inject   Inject a shared library (*.so) in a target apk.
  plugins  Manage pluginsFridaUsage: python -m apkinjector frida [OPTIONS] APK

  Inject a frida gadget in a target apk.

Options:
  --gadget TEXT     Path to custom gadget.
  --script TEXT     Inject a javascript to be loaded when the gadget starts.
  --codeshare TEXT  Same as --script but uses Frida Codeshare as the source
                    javascript.
  --arch TEXT       Architecture to inject for. If empty --adb or --gadget
                    must be specified.
  --adb             Use adb (if installed) to detect device architecture.
  --activity TEXT   Name of the activity to inject into. If unspecified, the
                    main activity will be injected.
  --output          Custom path where the patched apk should be saved.
  --force           Force delete destination directory.
  --help            Show this message and exit.InjectUsage: python -m apkinjector inject [OPTIONS] APK

  Inject a shared library (*.so) in a target apk.

Options:
  --library TEXT   Shared library (*.so) to inject.  [required]
  --include TEXT   Extra files to include in the lib folder. Can be used
                   multiple times to include more files.
  --arch TEXT      Architecture to inject for. If empty --adb or --library
                   must be specified.
  --adb            Use adb (if installed) to detect device architecture.
  --activity TEXT  Name of the activity to inject into. If unspecified, the
                   main activity will be injected.
  --output         Custom path where the patched apk should be saved.
  --force          Force delete destination directory.
  --help           Show this message and exit.Apk utilsUsage: python -m apkinjector apk [OPTIONS] APK

  Apk utils

Options:
  --activities   Gets all activities
  --permissions  Gets all permissions
  --libraries    Gets all libraries
  --recievers    Gets all receivers
  --help         Show this message and exit.PluginsUsage: python -m apkinjector plugins [OPTIONS]

  Manage plugins

Options:
  --list          List all installed and available plugins.
  --install TEXT  Installs a plugin by name.
  --remove TEXT   Removes an installed plugin.
  --help          Show this message and exit.Using as a modulefromapkinjectorimportLOGLOG.info("This has been printed using apkinjector logging")# Also comes with runners for apktool, uber-apk-signer, etc/fromapkinjector.apktoolimportApkToolfromapkinjector.uber_apk_signerimportUberApkSigner# Automatically download and setup apktool.ApkTool.install()# Decompile apkApkTool.decode(...)# Automatically download and setup uber-apk-signerUberApkSigner.install()# Sign apkUberApkSigner.sign(...)# Check if a dependency is in pathfromapkinjectorimportDEPENDENCIES_MANAGER# Add a new dependencyjava=DEPENDENCIES_MANAGER.add_dependency('java',required=True)# Return Depedency(name, path, required)# Check if a dependency is path# Returns the path to the binary if found, if not returns None# See apkpatcher/apkpatcher to see how dependencies are automatically handledin_path=DEPENDENCIES_MANAGER.javaUsage as a plugin# Can use the same methods as a it would been included in a separate module.fromapkinjectorimportLOG# Adding a new command to the `apkinjector` application:fromapkinjector.pluginsimportmain# Define a new command. It uses click under the hood. See more at https://click.palletsprojects.com/en/8.1.x/# Check plugins/plugin_example.py for a full example.@main.command(help='Prints hello world to the console.')defhello_world():LOG.info('Hello World')# prints infoLOG.warning("Hello World")# prints warningLOG.error('Hello World')# prints error and calls sys.exit(1)# This will be usable with `apkinjector hello_world`## apkinjector hello-world --help# Usage: python -m apkinjector hello-world [OPTIONS]#   Prints hello world to the console.# Options:#   --help  Show this message and exit.