Already a NinjaOne customer? Log in to view more guides and the latest updates.

Adding, Managing, and Removing APK Files

Topic

This article describes how to upload custom Android Package Kit (APK) files to Android MDM policies and manage APK files in the NinjaOne APK library.

Environment

NinjaOne Mobile Device Management (MDM)

Description

This article is part of the NinjaOne MDM: Android Application Management article suite. It covers navigating to application management settings, configuring policy-level application options, working with the Managed Applications table, configuring kiosk settings, and setting persistent preferred activities. Refer to NinjaOne MDM: Android Application Management for more information.

For information about adding Google Play Store, system, private, or web applications, refer to NinjaOne MDM: Adding, Editing, and Removing Android Applications.

Add Custom App APKs

You can upload custom apps via APK files directly to an Android MDM policy. To manage custom APK files in a centralized library and apply them across multiple policies without re-uploading, refer to the Managing the APK Library section of this article.

The NinjaOne agent must be version 1.3.5 or later for APK deployment to succeed.

Select a topic to continue:

  1. On the Android MDM policy's configuration page, navigate to Management → Managed Applications.
  2. Click Add apps, then select Upload application from the drop-down menu.
KM2759.png
Figure 1: Management → Add apps → Custom app (click to enlarge)
  1. The Upload application window will open. Configure the following settings.

    OptionDescription
    Android connection

    This optional field enables you to specify the Android Enterprise connections that should receive the APK installation.

    • Only the technicians attached to the connection specified will be able to view and manage the app.
    • Leave this field blank to allow APK installation to your full Android MDM ecosystem.
    Allow user uninstallDecide if the device end user is able to uninstall the app.
    Upload an applicationClick this button, then navigate to the APK file's location to upload it to NinjaOne.
    NameEnter an optional display name, which will appear in the Android MDM policy's Applications list.
    PublisherEnter an optional publisher name, which will appear in the Android MDM policy's Applications list.
    Default permission policy

    Select the required behavior when the app requests user permission:

    • Prompt: The device asks the user if the app should allow or deny the permission.
    • Grant: The device automatically approves the permission request.
    • Deny: The device automatically denies the permission request.
    Delegated scope access grants

    Android apps can have additional delegation scopes, letting applications install certificates, access managed configurations, block uninstallation, activate system apps, and more. Use the drop-down menu to select from the following:

    • Certificate installation and management
    • Managed configurations management
    • Blocking uninstallation
    • Permission policy and permission grant state
    • Package access state
    • Enabling system apps

Managing the APK Library

The APK library is a centralized repository for custom APK files. You can upload, edit, and override APKs from the library and apply them across multiple Android MDM policies without re-uploading files at the policy level. Changes you make in the APK library propagate automatically to all associated policies and device-level overrides.

The policy-level Upload application workflow described in the Add Custom App APKs section of this article and the APK library are separate workflows. Use the APK library when you need to manage an APK across multiple policies from a single location.

To access the APK library, navigate to Administration → Apps → Installed → NinjaOne MDM Android and click APK library.

KM2759_APKLibrary.png
Figure 2: Administration → Apps → Installed → APK library (click to enlarge)

The APK library table lists all uploaded APK files. Each row displays the app's name, package name, version, publisher, Android connection, status, and upgrade status. You can add or remove columns by clicking the Actions icon, and rearrange columns by dragging them to new positions.

If NinjaOne cannot retrieve an APK's metadata, the affected fields in the row appear as - and an error indicator appears on the row. Hover over the error indicator to view the error details. Reload the table to request the metadata again.

APK Scanning Status

NinjaOne scans each APK you upload for security threats. The Status column in the APK library displays the current scan state for each file. Status changes appear in real time in the APK library and are visible only to the admin who triggered the upload or edit.

StatusDescription
ReadyThe scan completed successfully. The APK is available for deployment.
Failed processingThe scan failed. The APK remains in the library but cannot be deployed to policies.

To filter the APK library table by scan status, click the filter control above the table and select the status values you want to display.

APKManagement_StatusIndicators.png
Figure 3: NinjaOne MDM Android App → Status (click to enlarge)

Adding an APK to the Library

Follow these steps to upload a new APK to the APK library.

APK uploads support files up to 15 GB. Support for files between 15 GB and 25 GB is available behind a feature flag; uploads in this size range do not require APK scanning.

  1. In the APK library, click Upload.
  2. In the Upload an .apk file window, click Upload file.
  3. Navigate to the file on your system and click Open.
  4. Enter any of the following information that NinjaOne MDM requires. When finished, click Save.
OptionDescription
Android connectionSelect the Android Enterprise connections that should have access to this APK. Leave this field blank to make the APK available across your full Android MDM ecosystem. Only users attached to the specified connection can view and manage the app. When you update this field later, NinjaOne automatically updates all associated policies and device-level overrides to reflect the change.
NameEnter an optional display name. This name appears in the APK library and in any policy's Applications list where the APK is applied.
PublisherEnter an optional publisher name. This name appears in the APK library and in any policy's Applications list where the APK is applied.
Default permission policy

Select the required behavior when the app requests user permission:

  • Prompt: The device asks the user if the app should allow or deny the permission.
  • Grant: The device automatically approves the permission request.
  • Deny: The device automatically denies the permission request.
Allow user uninstallDecide if the device end user is able to uninstall the app.
Delegated scope access grants

Android apps can have additional delegation scopes, letting applications install certificates, access managed configurations, block uninstallation, activate system apps, and more. Use the drop-down menu to select from the following:

  • Certificate installation and management
  • Managed configurations management
  • Blocking uninstallation
  • Permission policy and permission grant state
  • Package access state
  • Enabling system apps

After you save, NinjaOne begins scanning the APK. The APK's status changes to Scanning until the scan is complete. NinjaOne records an activity entry when the upload succeeds or fails.

If the APK contains unrecognized permission names, NinjaOne displays a warning but allows the upload to complete. You can proceed with installation without interruption.

Editing an APK in the Library

You can upload a new version of an existing library APK to replace it. NinjaOne applies the updated file to all associated policies and device-level overrides automatically.

  1. In the APK library, click the Actions menu next to the APK you want to update, then click Edit.
APKEnhancements_EditApp.png
Figure 4: Actions → Edit in the APK library (click to enlarge)
  1. In the edit window, upload the replacement APK file and update any settings you want to change. When finished, click Update.

NinjaOne adds the updated APK information to all associated policies and device-level overrides and records an Activities feed entry for the edit result.

To update an APK's Android connection assignments, edit the APK in the library and change the Android connection field. NinjaOne automatically updates all associated policies and device-level overrides to reflect the change.

Overriding an APK

The override feature replaces one library APK with another version already in the library, across all associated policies and device-level overrides simultaneously. Use this workflow when you want to swap an APK version without uploading a new file.

  1. In the APK library, click the Actions menu next to the APK you want to replace, then click Override.
  2. In the override window, select the replacement APK from the library, then click Confirm.

The override window displays only APKs whose package name matches the APK you are replacing.

NinjaOne removes the original APK and updates all associated policies and device-level overrides to use the replacement. NinjaOne records an activity entry that lists the policies and device overrides that were updated.

Filtering the APK Library

You can filter the APK library table to narrow the list of APKs displayed. Click the filter control above the table and select a filtering category. You can filter APKs by:

  • Upgrade status
  • Policy
  • Package name

APK Library Activity Log

The APK library includes an activity log that records events for each APK. To view the activity log for a specific APK, click the Actions menu next to the APK, then click Details.

The activity log records the following event types:

  • Upload success and upload failure
  • Scan complete, including results where the scan status is Suspicious
  • Edit success and edit failure
  • Policy and device override updates that result from an override or Android connection assignment change
  • APK deletion

Deleting an APK from the Library

You can delete APKs from the library when they are no longer needed.

  • If the APK is assigned to one or more policies or device-level overrides, NinjaOne displays the affected policies and overrides before completing the deletion.
  • Deleting the APK removes it from all associated policies and node overrides and records an activity entry logging the filename.
  • You must have update permissions on all referenced policies and nodes to complete the deletion.

Deleting an APK from the library permanently removes the file from storage. You cannot undo this action.

Procedure

  1. In the APK library, click the Actions menu next to the APK you want to delete, then click Delete.
  2. NinjaOne prompts you to confirm the deletion. Click Yes to complete the action. NinjaOne will remove the APK from the library and record an activity entry logging the filename that was deleted.

Additional Resources

FAQ

Next Steps