123下一页
返回列表 发新帖

shareuid查询工具

[复制链接]

282

主题

4131

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5838
好评
23
信誉
128

考神MT论坛新人MT论坛最佳新人MT论坛帅哥MT论坛活跃会员MT论坛灌水老大

发表于 2026-7-12 21:17:45 来自手机  | 显示全部楼层 | 阅读模式  来自 北京
本帖最后由 黄金 于 2026-7-12 21:42 编辑

import subprocess, sys, re
from collections import defaultdict

def run(cmd):
    return subprocess.run(cmd, capture_output=True, text=True, timeout=30)

# 1. 获取所有包 + UID
print("[1] 获取所有包 UID 列表...")
rp = run(["pm", "list", "packages", "-U"])
if rp.returncode != 0:
    print("ERROR:", rp.stderr)
    sys.exit(1)

uid_pkgs = defaultdict(list)
for line in rp.stdout.strip().splitlines():
    line = line.strip()
    if not line.startswith("package:"):
        continue
    m = re.match(r'package:(\S+)\s+uid:(\S+)', line)
    if m:
        uid_pkgs[m.group(2)].append(m.group(1))

# 2. 只保留有共享的 UID(>=2 个包)
shared = {uid: pkgs for uid, pkgs in uid_pkgs.items() if len(pkgs) >= 2}
if not shared:
    print("没有找到共享 UID 的包")
    sys.exit(0)

print(f"找到 {len(shared)} 个共享 UID 组,共 {sum(len(v) for v in shared.values())} 个包")
# print(f"只需查询 {len(shared)} 次 dumpsip(每组查一个代表包)")
print()

# 3. 每组只查第一个包
uid_suid = {}  # uid -> su_name
for uid, pkgs in sorted(shared.items()):
    rep = pkgs[0]  # 代表包
    # sys.stdout.write(f"  查 {uid}: {rep} ... ")
    # sys.stdout.flush()
    rd = run(["dumpsys", "package", rep])
    su_name = ""
    if rd.returncode == 0:
        for ln in rd.stdout.splitlines():
            if "sharedUser=" in ln:
                m2 = re.search(r'SharedUserSetting\{[^ ]* ([^/]+)/', ln)
                if m2:
                    su_name = m2.group(1)
                else:
                    m2 = re.search(r'SharedUserSetting\{[^}]* ([^}]+)\}', ln)
                    if m2:
                        su_name = m2.group(1)
                break
    uid_suid[uid] = su_name
    print(f"-> {su_name or '(无sharedUserId/单包UID)'}")

print("\n" + "=" * 60)
print("  sharedUserId 分组结果")
print("=" * 60)

# 按 sharedUserId 聚合
su_groups = defaultdict(list)  # su_name -> [(uid, pkgs...)]
for uid, pkgs in sorted(shared.items()):
    su = uid_suid.get(uid, "")
    key = su if su else f"(UID {uid} 共享但未查到 sharedUserId)"
    su_groups[key].append((uid, pkgs))

idx = 0
for su_name in sorted(su_groups.keys()):
    items = su_groups[su_name]
    idx += 1
    total_pkgs = sum(len(pkgs) for _, pkgs in items)
    uids = [uid for uid, _ in items]
    print(f"\n{idx}. sharedUserId = \"{su_name}\"")
    print(f"   UID: {', '.join(uids)}  |  包数: {total_pkgs}")
    for uid, pkgs in items:
        for p in pkgs:
            print(f"     -> {p}")
    print()

print("=" * 60)
print(f"  完成,共 {len(shared)} 组,{sum(len(v) for v in shared.values())} 个包")
这个是编译好的c,适合没有root的设备,adb权限也能看
https://www.lanzoub.com/iv1WJ3w1yjkf
让ai给我搓了个可以查看有哪些应用占了哪些shareuid的小脚本

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

3655

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
7751
好评
24
信誉
241
发表于 2026-7-12 21:18:53 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

0

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
6870
好评
1
信誉
100
发表于 2026-7-12 21:19:30 来自手机  | 显示全部楼层  来自 河北
看看隐藏
回复

使用道具 举报

10

主题

3705

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5022
好评
2
信誉
112

MT论坛最佳新人考神MT论坛帅哥

发表于 2026-7-12 21:19:50 来自手机  | 显示全部楼层  来自 福建
感谢分享
回复

使用道具 举报

34

主题

7771

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4230
好评
24
信誉
143

考神

发表于 2026-7-12 21:21:06 来自手机  | 显示全部楼层  来自 山东
看看隐藏
回复

使用道具 举报

14

主题

607

回帖

2512

积分

大学生

Rank: 5Rank: 5

金币
850
好评
1
信誉
102
发表于 2026-7-12 21:23:18 来自手机  | 显示全部楼层  来自 广东
看看
回复

使用道具 举报

66

主题

338

回帖

1142

积分

禁止发言

金币
91
好评
4
信誉
95
发表于 2026-7-12 21:29:31 来自手机  | 显示全部楼层  来自 河南
拼错了吧
回复

使用道具 举报

0

主题

2463

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5791
好评
0
信誉
134

MT论坛帅哥考神

发表于 2026-7-12 21:32:44 来自手机  | 显示全部楼层  来自 贵州
看看隐藏
回复

使用道具 举报

32

主题

693

回帖

2902

积分

大学生

Rank: 5Rank: 5

金币
1224
好评
3
信誉
101
发表于 2026-7-12 21:35:47 来自手机  | 显示全部楼层  来自 河南
看看隐藏
回复

使用道具 举报

22

主题

2389

回帖

7305

积分

硕士生

Rank: 6Rank: 6

金币
1430
好评
21
信誉
101

MT论坛新人考神

发表于 2026-7-12 21:39:06 来自手机  | 显示全部楼层  来自 湖南
看看隐藏
回复

使用道具 举报

282

主题

4131

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5838
好评
23
信誉
128

考神MT论坛新人MT论坛最佳新人MT论坛帅哥MT论坛活跃会员MT论坛灌水老大

发表于 2026-7-12 21:42:23 来自手机  | 显示全部楼层  来自 北京
ACE扫炸硬盘 发表于 2026-7-12 21:29
拼错了吧

还真是,你不说我都没发现
回复

使用道具 举报

12

主题

5246

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1590
好评
16
信誉
578

考神MT论坛帅哥MT论坛新人MT论坛最佳新人MT论坛活跃会员

发表于 2026-7-12 21:45:19 来自手机  | 显示全部楼层  来自 广西
看看隐藏
回复

使用道具 举报

6

主题

828

回帖

1806

积分

高中生

Rank: 4

金币
865
好评
0
信誉
100
发表于 2026-7-12 21:46:38 来自手机  | 显示全部楼层  来自 山东
看看隐藏
回复

使用道具 举报

0

主题

986

回帖

1680

积分

高中生

Rank: 4

金币
99
好评
1
信誉
100
发表于 2026-7-12 21:47:10 来自手机  | 显示全部楼层  来自 江西
谢谢分享
回复

使用道具 举报

15

主题

1243

回帖

2955

积分

大学生

Rank: 5Rank: 5

金币
1225
好评
0
信誉
95
发表于 2026-7-12 21:48:13 来自手机  | 显示全部楼层  来自 山东
看看隐藏
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表