gf-packages-cli 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,91 @@
1
+ # packages-cli
2
+
3
+ Android APP 包管理工具,通过 ADB 连接安卓设备,实现第三方应用的**导出(APKS)**和**卸载**。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install -g gf-packages-cli
9
+ # 或
10
+ node bin/cli.js
11
+ ```
12
+
13
+ 全局安装后可直接使用 `gf-packages-cli` 命令。
14
+
15
+ ## 使用方式
16
+
17
+ ### 1. 交互式菜单(推荐)
18
+
19
+ ```bash
20
+ packages-cli
21
+ ```
22
+
23
+ 进入菜单后选择功能:
24
+
25
+ - **📤 导出指定包** — 导出第三方应用的 APK 并打包为 `.apks`
26
+ - **🚫 删除设备指定 APP 及文件** — 卸载第三方应用
27
+
28
+ ### 2. 子命令模式
29
+
30
+ #### export — 导出应用
31
+
32
+ ```bash
33
+ gf-packages-cli export # 交互式选择设备和应用
34
+ gf-packages-cli export -a # 导出所有第三方应用
35
+ gf-packages-cli export -d <设备序列号> # 指定设备
36
+ gf-packages-cli export -o D:/myApks # 指定输出目录
37
+ gf-packages-cli export -p com.xx.xx com.yy.yy # 指定包名
38
+ ```
39
+
40
+ **选项:**
41
+
42
+ | 参数 | 说明 |
43
+ |------|------|
44
+ | `-d, --device <id>` | 设备序列号(多设备时必填) |
45
+ | `-o, --output <dir>` | 输出目录,默认交互式输入 |
46
+ | `-a, --all` | 导出所有第三方应用 |
47
+ | `-p, --packages <pkgs...>` | 指定包名,空格分隔 |
48
+
49
+ **特性:**
50
+
51
+ - 输出目录持久化 — 首次输入后保存到 `~/.my-cli-config.json`,下次询问是否复用
52
+ - 实时进度条 — 拉取时显示 spinner + 百分比
53
+ - 自动分包打包 — 自动拉取 base.apk + 所有 split apk,打包为 `包名_版本.apks`
54
+ - 导出后可选卸载 — 导出完成后提示是否卸载已导出的应用
55
+
56
+ #### delete — 卸载应用
57
+
58
+ ```bash
59
+ gf-packages-cli delete # 交互式选择
60
+ gf-packages-cli delete -a # 卸载所有第三方应用
61
+ gf-packages-cli delete -d <设备序列号> # 指定设备
62
+ gf-packages-cli delete -p com.xx.xx # 指定包名
63
+ ```
64
+
65
+ ### 3. 其他
66
+
67
+ ```bash
68
+ gf-packages-cli -h # 查看帮助
69
+ gf-packages-cli -v # 查看版本
70
+ ```
71
+
72
+ ## 目录结构
73
+
74
+ ```
75
+ bin/cli.js # CLI 入口
76
+ src/
77
+ ├── index.js # 交互式菜单
78
+ ├── exportPackage.js # 导出命令
79
+ └── deletePackage.js # 卸载命令
80
+ lib/
81
+ ├── tools/adb.js # ADB 工具函数(设备检测、命令执行)
82
+ └── common/appCommon.js # 公共逻辑(获取包名列表、选择包)
83
+ ```
84
+
85
+ ## 配置文件
86
+
87
+ 路径:`~/.gf-packages-cli-config.json`
88
+
89
+ ```json
90
+ { "outputDir": "C:\\Users\\HP\\Desktop\\apksInstall" }
91
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gf-packages-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "bin": {
5
5
  "gf-packages-cli": "./bin/cli.js"
6
6
  },
@@ -1,7 +1,7 @@
1
1
  const { Command } = require('commander');
2
2
  const chalk = require('chalk').default;
3
- const { getDeviceList, selectDevice, runAdbSync } = require('../lib/tools/adb.js');
4
- const { getThirdPartyPackages, selectPackages } = require('../lib/common/appCommon.js');
3
+ const { getDeviceList, selectDevice, runAdbSync } = require('./lib/tools/adb.js');
4
+ const { getThirdPartyPackages, selectPackages } = require('./lib/common/appCommon.js');
5
5
 
6
6
 
7
7
 
@@ -6,8 +6,8 @@ const fs = require('fs');
6
6
  const path = require('path');
7
7
  const os = require('os');
8
8
  const AdmZip = require('adm-zip');
9
- const { getDeviceList, selectDevice, runAdbSync } = require('../lib/tools/adb.js');
10
- const { getThirdPartyPackages, selectPackages } = require('../lib/common/appCommon.js');
9
+ const { getDeviceList, selectDevice, runAdbSync } = require('./lib/tools/adb.js');
10
+ const { getThirdPartyPackages, selectPackages } = require('./lib/common/appCommon.js');
11
11
  const REMOTE_APK_SUFFIX = '.apk';
12
12
 
13
13
  // ===================== ADB 工具函数 =====================