/* dev_repro.c — 真机复现 login_status_check(weapi)挂死 * 用与 App 相同的 core 库:ncm_ctx_init 载入 deviceId/cookie,然后 ncm_login_status_check。 * 观察返回码与耗时;若 >10min 即复现挂死。 * 用法: ./dev_repro [data_dir] [cacert] */ #include "ncm.h" #include "ncm_http.h" #include "ncm_common.h" #include #include int main(int argc, char **argv) { const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/dev.player.ncm/data"; const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/dev.player.ncm/cacert.pem"; ncm_ctx_t ctx; ncm_ctx_init(&ctx, data_dir); printf("device_id=%s\n", ctx.device_id); printf("cookie_len=%zu cookie=%s\n", strlen(ctx.cookie), ctx.cookie); ncm_http_set_verify_default(1, cacert); char uid[32], nick[128]; long t0 = (long)ncm_now_ms(); printf("status_check start...\n"); int rc = ncm_login_status_check(ctx.device_id, ctx.cookie, uid, sizeof uid, nick, sizeof nick); long dt = (long)ncm_now_ms() - t0; printf("status_check rc=%d elapsed_ms=%ld uid=%s nick=%s\n", rc, dt, uid, nick); return rc == 0 ? 0 : 1; }