HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/native-run/dist/android/utils/apk.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getApkInfo = exports.readAndroidManifest = void 0;
const unzip_1 = require("../../utils/unzip");
const binary_xml_parser_1 = require("./binary-xml-parser");
async function readAndroidManifest(apkPath) {
    let error;
    const chunks = [];
    await (0, unzip_1.unzip)(apkPath, async (entry, zipfile, openReadStream) => {
        if (entry.fileName === 'AndroidManifest.xml') {
            const readStream = await openReadStream(entry);
            readStream.on('error', (err) => (error = err));
            readStream.on('data', (chunk) => chunks.push(chunk));
            readStream.on('end', () => zipfile.close());
        }
        else {
            zipfile.readEntry();
        }
    });
    if (error) {
        throw error;
    }
    const buf = Buffer.concat(chunks);
    const manifestBuffer = Buffer.from(buf);
    return new binary_xml_parser_1.BinaryXmlParser(manifestBuffer).parse();
}
exports.readAndroidManifest = readAndroidManifest;
async function getApkInfo(apkPath) {
    const doc = await readAndroidManifest(apkPath);
    const appId = doc.attributes.find((a) => a.name === 'package').value;
    const application = doc.childNodes.find((n) => n.nodeName === 'application');
    const activity = application.childNodes.find((n) => n.nodeName === 'activity');
    const activityName = activity.attributes.find((a) => a.name === 'name').value;
    return { appId, activityName };
}
exports.getApkInfo = getApkInfo;