Android apps that you install through app stores are normally installed to your devices using an APK file. Even though installing an app through a store is simple and streamlined, you still might have the need to install the APK files manually.

Android often allows to install APK files manually, by enabling the options to install apps from unknown sources. This however doesn't always work on many devices and has some other restrictions.

You can sideload APK files also with the Bugjaeger app. With Bugjaeger, you'll additionally be able to install split APK files, install multiple APK files at once, install apps that are already installed on your other Android devices, and use many more advanced features and options.

Initial Connection

To use Bugjaeger, you first need to connect it to a target device. The target device will be the device that the host (device with Bugjaeger installed) will control.

There are basically 2 ways of connecting a target - 1) through USB cable, or 2) through WiFi.

The technical details may vary slightly amongst devices and Android versions. I'll try to write a more detailed post about this in the future. For now you can also check the FAQ and other posts about Bugjaeger for more information.

Before connecting, you'll always need to enable developer options and USB debugging (some Android devices, like Wear OS watches or TVs don't need USB connection and Android 11+ now allows direct WiFi connection without initial USB connection).

  1. Enable Developer options AND USB debugging on target device. Check out the official docs, if you're not sure how to do this

  2. Start Bugjaeger app on host device

  3. Connect host and target through USB OTG cable

  4. Authorize Bugjaeger app to access the connected USB device on host

  5. Authorize ADB connection on target

After performing the steps above, you should see your connected target device appear in the top device list spinner

device listed

Download APK File to Your Device

You might already have the APK file on your host phone with Bugjaeger, or you can just download it from many sources available on the internet.

Downloading APK files from untrusted sources may pose a security risk! So always make sure you get your APK file from a trustworthy source.

Android went through some changes in recent versions and implemented the scoped storage. In many cases, this broke the standard file API in Java/Kotlin/C++/C and forced the developers to use a more complex and convoluted API. It also caused weird and inconsistent behavior when accessing same folders on different Android versions. If you're downloading a APK file, I recommend to use the standard "Download" folder and download it through your browser on host. Pushing the APK to other folders (e.g. from other device with Bugjaeger or ADB) can cause that the file won't be accessible (or even visible) to Bugjaeger. If it won't work, try other destinations.

Navigating to Packages and Installing

An APK file contains the executable code and resources of an app. I'll use the terms "Android app", "package", and APK file interchangeably. If it's necessary, I'll point out the distinction (see next section).

You can install APK files from the "Packages" tab in Bugjaeger. If you were able to connect a target device, inside of the Packages tab you should see a list of packages installed on the target (swipe refresh the view, if you can't see the package list). A package (app) is usually identified by a package name and that's what you should see in the list on the Packages tab.

To install a new package (=APK), tap on the plus button inside of a circle in the top toolbar.

add package

Make sure that you first switch to the Packages tab. The plus button is context-sensitive. It has a different purpose when used from different tab (e.g. Commands tab). I received complains from users that tapped on the plus button from Commands tab and were then surprised why package installation isn't working.

After tapping on the plus button a dialog with installation options should appear. For regular APK install, just use the first option. A system file picker should appear and allow you to navigate to your desired APK file. You might need to give storage permission first. I'll explain the other options in the next section. apk install options

Options for Installing

Beside installing a regular APK file that you downloaded to your phone, you also have 2 additional options.

Select from Installed Apps allows you to install apps that are currently installed on your host device (where you have Bugjaeger). The distinction is that these are the APK files of already installed apps (e.g. from Google Play). Not just downloaded APK files. Note that this option often won't work! APK files installed from app store like Google Play are often highly optimized for the specific device that installs the APK file. This means that if 2 devices are too different (cpu, display, ...), the installation won't be successful.

The last option Select Split APKs to install allows to install split APK files. Split APK files are multiple APK files that install one app and need to be installed simultaneously.

Sometimes the code and resources required for installing and app are split into multiple APK files. One file can contain the main code and the other files can contain e.g. localized strings for a translation of your app to another language. This option is similar to the first option, but you need to tap and hold APK file in Android's standard file picker, so that you are allowed to select multiple APKs at once.

Option to Specify Installer Package

For more advanced usage, Bugjaeger also offers the option to specify an "installer package". You can access this option by tapping the 3-dot menu button in top toolbar and then tapping on "Settings..".

I used this option for testing my Power APK app. It's an app that shows various information about APK files. It also shows if an app was installed though google play. This allowed me to simulate the installation through Google Play installer (com.android.vending) and verify if other installer packages show up correctly in my app.

Previous Post

Add a comment