feat(#7): implement LoadAndroidDB function and add tests for loading ekeys from QQ Music Android SQLite database

This commit is contained in:
鲁树人
2026-10-18 08:11:51 +09:00
parent 3ed50f3f30
commit 09622d01a7
3 changed files with 251 additions and 1 deletions
+6 -1
View File
@@ -53,6 +53,7 @@ func main() {
&cli.StringFlag{Name: "qmc-mmkv", Aliases: []string{"db"}, Usage: "path to QQMusic mmkv path", Required: false},
&cli.StringFlag{Name: "qmc-mmkv-key", Aliases: []string{"key"}, Usage: "QQMusic mmkv password (16 ascii chars)", Required: false},
&cli.StringFlag{Name: "qmpc-mmkv-cli-exe", Usage: "path to QMPC MMKV Cli by LSR (v0.1.1+, auto-fetch QMC keys; Windows only)", Required: false, Value: "qmpc-mmkv-cli.exe"},
&cli.StringFlag{Name: "qmc-android-db", Usage: "path to QQMusic Android player_process_db (dump from android: /data/data/com.tencent.qqmusic/databases/)", Required: false, Value: "player_process_db"},
&cli.StringFlag{Name: "kgg-db", Usage: "path to kgg db (win32 kugou v11)", Required: false},
&cli.BoolFlag{Name: "remove-source", Aliases: []string{"rs"}, Usage: "remove source file", Required: false, Value: false},
&cli.BoolFlag{Name: "skip-noop", Aliases: []string{"n"}, Usage: "skip noop decoder", Required: false, Value: true},
@@ -185,7 +186,11 @@ func appMain(c *cli.Context) (err error) {
if err != nil {
return err
}
qmcKeys = mmkv.Merge(qmcKeys, qmc.LoadUserMMKV(c.String("qmc-mmkv"), c.String("qmc-mmkv-key"), logger))
qmcKeys = mmkv.Merge(
qmcKeys,
qmc.LoadUserMMKV(c.String("qmc-mmkv"), c.String("qmc-mmkv-key"), logger),
qmc.LoadAndroidDB(c.String("qmc-android-db"), logger),
)
kggDbPath := c.String("kgg-db")
if kggDbPath == "" {