首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android AIDL安全

Android AIDL安全
EN

Stack Overflow用户
提问于 2012-09-06 13:58:37
回答 4查看 3.3K关注 0票数 7

当应用程序使用AIDL调用远程服务时,是否提供了安全性?或者它只是像一个恶意应用程序可以读取数据?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-06 14:52:46

在Android上,一个进程无法正常访问另一个进程的内存。

当您使用AIDL接口绑定到应用程序时,系统将在这些进程之间建立连接。因此,只有这两个应用程序可以读取通过AIDL接口共享的信息。

如果您想确定,则应在onBind(Intent intent)中进行额外检查,以确保正在连接的是您自己的应用程序

提示:阅读本页面的第一部分:http://developer.android.com/guide/components/aidl.html

票数 3
EN

Stack Overflow用户

发布于 2012-09-06 14:23:21

您可以始终在方法中进行过滤,以限制允许的包。如果包没有权限,则抛出SecurityException

代码语言:javascript
复制
Collection<String> callingpackages = getCallingPackages();

if(!callingpackages.contains("yourpackagename"){
//Throw securityException.
}

和getCallingPackages

代码语言:javascript
复制
private Collection<String> getCallingPackages() {
     int caller = Binder.getCallingUid();
     if (caller == 0) {
         return null;
     }
     return Lists.newArrayList(mContext.getPackageManager().getPackagesForUid(caller));
 }
票数 1
EN

Stack Overflow用户

发布于 2021-01-28 10:55:08

signature的示例安全service,通过使用android:protectionLevel="signature",只有签署了相同签名(相同密钥库)的应用程序才能绑定到您的服务

AppServer AndroidManifest.xml

代码语言:javascript
复制
<manifest ...>

    <permission
        android:name="my.MyCustomPermission"
        android:protectionLevel="signature" />

    <application
        ...>

        <service
            ...
            android:permission="my.MyCustomPermission">
            ...
        </service>
    </application>

</manifest>

AppClient AndroidManifest.xml

代码语言:javascript
复制
<manifest ...>

    <uses-permission android:name="my.MyCustomPermission"/>

    <application
        ...
    </application>

</manifest>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12293780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档