android Superuser.apk源码分析
发布日期:2021-06-29 15:28:13 浏览次数:2 分类:技术文章

本文共 966 字,大约阅读时间需要 3 分钟。

下载位置:

关于Superuser,这边分析一个接收su程序发送过来的广播以及处理过程

SuRequestReceiver
这个类进行处理的接收过程。(可直接去查看AndroidManifest.xml)
onReceive里面进行判断,首先读取是否存储过,有默认选择。否则走到
showPrompt,这个函数启动了SuRequestActivity 界面。即是我们操作的对话框。
SuRequestActivity
这个类启动了对话框,通过
            ((Button)findViewById(R.id.allow)).setOnClickListener(this);
            ((Button)findViewById(R.id.deny)).setOnClickListener(this);
            注册了选择按钮的回调函数。
            查看此类的onClick函数,我们来看
                    case R.id.allow:
        case R.id.pin_ok:
        这个允许的操作。
        执行sendResult语句,此语句里面
                    OutputStream os = mSocket.getOutputStream();
            Log.i(TAG, "Sending result: " + resultCode + " for UID: " + mCallerUid);
            os.write(resultCode.getBytes("UTF-8"));
            os.flush();
            os.close();
            mSocket.close();
            向su创建的socket fd反馈结果。su的socket fd通过参数在onCreate里面可以看到。
            onCreate里面的:
             String socketPath = intent.getStringExtra(SuRequestReceiver.EXTRA_SOCKET);
             以及创建连接
                            mSocket = new LocalSocket();
                mSocket.connect(new LocalSocketAddress(socketPath,
                        LocalSocketAddress.Namespace.FILESYSTEM));
                Credentials creds= mSocket.getPeerCredentials();
            分析完毕。

转载地址:https://codegg.blog.csdn.net/article/details/9140267 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android从触碰屏幕开始的事件采集,解析及分发(1)
下一篇:android su程序分析

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年05月01日 22时34分31秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章