A library to parse Android application manifest and signature
npm install node-apkshell
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
`javascript
import {Apk} from "node-apk";
const apk = new Apk("yourapplication.apk");
`
$3
Application manifest details can be accessed using:
`javascript
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));
});
`$3
Certificates can be retrieved like the following:
`javascript
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"));
}));
`
$3
Application resources can be resolved as shown below:
`javascript
const iconBytes = Promise.all([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]);
}
`$3
Once you are done, don't forget to release you Apk object:
`javascript
apk.close();
``Copyright © 2019 All rights reserved. XdevL