【问题标题】:Android IPC security between system services系统服务之间的 Android IPC 安全性
【发布时间】:2016-09-23 01:37:03
【问题描述】:

我在Framework层的SystemServer中添加了一个系统服务。

interface IAService {

    void valueChange(int value)
}

public class XXXService extends IAService.Stub {

}

我希望这个服务可以像下面一样被另一个系统服务调用。

IAService service = IAService.Stub.asInterface(ServiceManager.getService("A"));
serivce.valueChange("0");

但是,如果有人使用 ServiceManager 作为反射方式来获取这个服务实例。

他们可以尝试 IPC。

我们可以只允许另一个系统服务这样做吗?

谢谢:)

【问题讨论】:

    标签: android security service ipc


    【解决方案1】:

    我认为没有——人们通过反射使用各种隐藏服务。最好的办法是使用系统级权限对其进行保护,这样任何没有该权限的人在尝试调用您的方法时都会抛出异常。

    【讨论】:

    • 如果有人知道自己尝试这个IPC会获得非法收益,他们就会尝试。无论如何.. :) 我们怎么知道调用方在被调用方有系统级权限?
    • 您在服务上调用它。如果您使用 IPC 通过 Binder 处理请求,它将返回调用应用程序的权限。
    • 如前所述,IPC 仅在 2 个系统服务之间调用。
    • 你想要的不存在,缺少一个定制的 Android 版本。这是最接近的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多