尝试在 android 11 上获取网络功能时出现安全异常

Sud*_*nsu 14 android exception android-source android-app-ops android-connectivitymanager

我在尝试访问以下代码时收到 SecurityException 和 RemoteException。应用程序接口

val networkCapabilities =connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)

异常获取

Fatal Exception: java.lang.SecurityException: Package android does not belong to 10319
           at android.os.Parcel.createExceptionOrNull(Parcel.java:2385)
           at android.os.Parcel.createException(Parcel.java:2369)
           at android.os.Parcel.readException(Parcel.java:2352)
           at android.os.Parcel.readException(Parcel.java:2294)
           at android.net.IConnectivityManager$Stub$Proxy.getNetworkCapabilities(IConnectivityManager.java:3347)
           at android.net.ConnectivityManager.getNetworkCapabilities(ConnectivityManager.java:1549)

Caused by android.os.RemoteException: Remote stack trace:
        at android.app.AppOpsManager.checkPackage(AppOpsManager.java:7783)
        at com.android.server.ConnectivityService.getNetworkCapabilities(ConnectivityService.java:2297)
        at android.net.IConnectivityManager$Stub.onTransact(IConnectivityManager.java:1357)
        at android.os.Binder.execTransactInternal(Binder.java:1195)
        at android.os.Binder.execTransact(Binder.java:1159)
Run Code Online (Sandbox Code Playgroud)

我分析它,当我深入到AOSP代码,我得到的流量将会checkPackage从AppOpsManager类随附的屏幕截图,并从我们所知道的代码所示的方法,只要检查包的条件不等于MODE_ALLOWED那么只有我们将得到安全例外。但我没有。想法何时该条件会失败。

如果有人对此有任何想法,请帮助我,谢谢

在此处输入图片说明

在此处输入图片说明

小智 7

看起来这是一个已知问题,但谷歌仍然没有回应 https://issuetracker.google.com/issues/175055271

Dec 10, 2020 11:43AM
We have passed this to the development team and will update this issue with more information as it becomes available.
Run Code Online (Sandbox Code Playgroud)