Exciting release!Introducing "safe npm". Learn more
Socket
Log inDemoInstall

node-apk

Package Overview
Dependencies
1
Maintainers
1
Versions
10
Issues
File Explorer

Advanced tools

node-apk

A library to parse Android application manifest and signature

    1.2.1latest
    GitHub

Version published
Maintainers
1
Weekly downloads
672
increased by9.62%

Weekly downloads

Changelog

Source

Version 1.2.1

Bug fix about some APKs not being parsed correctly

Readme

Source

Node APK

A library to parse Android application's manifest and signature

Installation

This library is meant to work with Node JS 4 or later. You can install it using npm:

npm install node-apk

The use of typescript is highly recommended for which this library has full typing support.

Usage

Import the Apk class and instantiate it passing your APK's file path

import {Apk} from "node-apk"; const apk = new Apk("yourapplication.apk");

Manifest information

Application manifest details can be accessed using:

apk.getManifestInfo().then((manifest) => { console.log(`package = ${manifest.package}`); console.log(`versionCode = ${manifest.versionCode}`); console.log(`versionName = ${manifest.versionName}`); // for properties which haven't any existing accessors you can use the raw binary xml console.log(JSON.stringify(manifest.raw, null, 4)); });

Certificate information

Certificates can be retrieved like the following:

apk.getCertificateInfo().then((certs) => certs.foreach((cert) => { console.log(`issuer = ${cert.issuer.get("CN")}`); console.log(`subject = ${cert.subject.get("CN")}`); console.log(`validUntil = ${cert.validUntil}`); console.log(cert.bytes.toString("base64")); }));

Application resources

Application resources can be resolved as shown below:

const iconBytes = Promise.all<Manifest, Resources>([apk.getManifestInfo(), apk.getResources()]) .then(([manifest, resources])) => { let label = manifest.applicationLabel; if (typeof label !== "string") { const all = resources.resolve(label); label = (all.find((res) => (res.locale && res.locale.language === "fr")) || all[0]).value; } console.log(`label = ${label}`); // resolve and extract the first application icon found return apk.extract(resources.resolve(manifest.applicationIcon)[0]); }

Cleaning up

Once you are done, don't forget to release you Apk object:

apk.close();

License

This software is licensed under the MIT license

Copyright © 2019 All rights reserved. XdevL

Keywords

FAQs

Last updated on 21 Feb 2023

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket
support@socket.devSocket SOC 2 Logo

Product

  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc