首页
社区
课程
招聘
Android C++如何获取ANDROID_ID
2023-2-5 17:40 5637

Android C++如何获取ANDROID_ID

2023-2-5 17:40
5637

可以通过adb获取ANDROID_ID
adb shell settings get secure android_id
根据根据网上的代码,封装了个执行命令并获取返回值的函数,但是执行settings get secure android_id不能获取到返回值,但是可以执行其他命令,比如获取网卡MAC cat /sys/class/net/wlan0/address

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
string MySystem(string cmd)
{
    FILE* fstream = NULL;
    char buff[1024];
    memset(buff, 0, sizeof(buff));
    string ret="";
 
    if (NULL == (fstream = popen(cmd.c_str(), "r")))
    {
        fprintf(stderr, "execute command failed: %s", strerror(errno));
        return "-2";
    }
 
    while (NULL != fgets(buff, sizeof(buff), fstream))
    {
        ret.append(buff).append("\n");
    }
    pclose(fstream);
    if (ret.length()==0)
    {
        return "-1";
    }
    return ret;
}

请教是否有其他获取ANDROID_ID的方法,或者我这种获取方式如何处理能正常获取到ANDROID_ID


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 3423
活跃值: (2995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
guijingwen 2023-2-5 19:56
2
0
你这段C++代码执行在你自己进程,权限跟shell是不一样的。
C++ jni反射调用这个java代码获得试试:String ANDROID_ID = Settings.System.getString(getContentResolver(),Settings.System.ANDROID_ID);
雪    币: 1744
活跃值: (3444)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
kzzll 2023-2-10 00:45
3
0
可以问chagpt
雪    币: 4636
活跃值: (2069)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hekes 2023-2-10 14:31
4
0
kzzll 可以问chagpt
最近想去玩玩这个的,被限制了登陆不了
雪    币: 235
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
descosmos 2023-2-13 15:46
5
0
String ANDROID_ID = Settings.System.getString(context.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID /* android_id */);
游客
登录 | 注册 方可回帖
返回