UNPKG

@u4/adbkit

Version:

A Typescript client for the Android Debug Bridge.

52 lines 2.08 kB
import { program } from 'commander'; import { getClientDevice } from './cli-common.js'; import { stdin, stdout } from 'node:process'; import readlinePromises from 'node:readline/promises'; const BixbySet = new Set(['com.samsung.android.app.spage', 'com.samsung.android.app.routines', 'com.samsung.android.visionintelligence']); program .command(`boatware [serials...]`) .description('remove common boatware.') .action(async (serials) => { const rl = readlinePromises.createInterface({ input: stdin, output: stdout }); const devices = await getClientDevice(serials); const process = async (device) => { const pkgs = await device.listPackages(); console.log(`${pkgs.length} Packages availible`); let cnt = 0; // const samsung = pkgs.filter(a => a.name.startsWith('com.samsung')) // samsung.forEach(a => console.log(a.name)); const bixby = pkgs.filter(a => a.name.includes('bixby') || BixbySet.has(a.name)); if (bixby.length) { cnt++; console.log(`${bixby.length} bixby Packages`); for (const pkg of bixby) { console.log(`- ${pkg.name}`); } const r = await rl.question(`do you want to remove them ? [y/N]`); if (r.toLowerCase() == 'y' || r.toLowerCase() == 'yes') { for (const p of bixby) { console.log(`uninstalling ${p.name}`); const r = await device.uninstall(p.name, { keep: true, user: 0 }); console.log(r ? 'Success' : 'Failed'); } } else { console.log(`response: "${r}", Skip`); } } if (!cnt) { console.log('No boatware, you may want to register some new boatware in cli-boatware.ts'); } else { console.log(`${cnt} boatware removed`); } }; for (const device of devices) { await process(device); } rl.close(); }); //# sourceMappingURL=cli-boatware.js.map