安卓隐私指示器学习笔记

news2025/1/12 3:52:32

最近了解到Google 在Android12上新增了权限指示器,可以在信号栏的右侧显示当前访问录音机和Camera的应用,点击后可以跳转到相应应用的权限界面,消费者可以控制权限的开启和关闭。国内手机厂商最近几年都在增加隐私看板供能,消费者可以看到相机、录音机被其他应用访问的记录,包含次数、时长等信息。

尤其Android 14,强制要求在信号区增加隐私指示器,可见安卓在隐私保护上的决心。

我估计手动控制权限的开启和关闭,并不是这个特性和核心。关键是Google或者说安卓系统愿意把权限的调用暴露给普通的消费者,本身这个态度带来的社会效应,至少让消费者最担心的声音和图像的泄露问题,得到了缓解。

本文主要是探讨起技术实现原理:

google官方文档链接如下,中英文还是略微有些区别,注意甄别https://source.android.com/docs/core/permissions/privacy-indicators

里面关键的图:

上图可见,核心的交互模块是AppOps,AppOps并不是Android12的新事物,早在Android 4.0就有了,其内部核心的几个类,

AppOpsManager

IAppOpsService.aidl  

AppOpsService

AppOpsCheckingServiceImpl
 

普通的安卓应用可以调用下述接口,监听Ops的访问记录

appOpsManager.startWatchingMode(AppOpsManager.OPSTR_READ_MEDIA_AUDIO,  null /* all packages */, mModeListener);

其中,第二个参数,传null代表,监听所有应用,也可以传具体的包名

当关心的包名,访问了具体的Ops,监听者就会收到回调。

调试手段:

adb shell dumpsys appops可以把ops服务的内部状态dump出来

具体解释如下:

Op mode watchers:
    Op COARSE_LOCATION:
      #0: ModeCallback{7f9fe97 watchinguid=-1 flags=0x0 op=FINE_LOCATION from uid=u0a144 pid=4204}
      #1: ModeCallback{82529b5 watchinguid=-1 flags=0x1 op=COARSE_LOCATION from uid=1000 pid=2265}
      #2: ModeCallback{926d7c2 watchinguid=-1 flags=0x0 op=READ_WRITE_HEALTH_DATA from uid=1000 pid=2265}
      #3: ModeCallback{da82a52 watchinguid=-1 flags=0x1 op=MONITOR_LOCATION from uid=u0a21 pid=4702}
      #4: ModeCallback{efa62b9 watchinguid=-1 flags=0x1 op=FINE_LOCATION from uid=u0a21 pid=4702}
    Op FINE_LOCATION:
      #0: ModeCallback{59f601b watchinguid=-1 flags=0x1 op=FINE_LOCATION from uid=1000 pid=2265}
      #1: ModeCallback{7f9fe97 watchinguid=-1 flags=0x0 op=FINE_LOCATION from uid=u0a144 pid=4204}
      #2: ModeCallback{926d7c2 watchinguid=-1 flags=0x0 op=READ_WRITE_HEALTH_DATA from uid=1000 pid=2265}

这是按具体的ops排列,打印出所有的监听者,可以配合ps -A命令查看具体的pid是哪个进程

 Package mode watchers:
    Pkg com.microsoft.appmanager:
      #0: ModeCallback{5f879b8 watchinguid=-1 flags=0x0 op=SYSTEM_ALERT_WINDOW from uid=1000 pid=5190}
    Pkg com.youku.phone:
      #0: ModeCallback{4e42e95 watchinguid=-1 flags=0x0 op=SYSTEM_ALERT_WINDOW from uid=1000 pid=5190}
      #1: ModeCallback{cd0ffac watchinguid=-1 flags=0x0 op=REQUEST_INSTALL_PACKAGES from uid=1000 pid=5190}

这是按具体的包名排列,打印出所有的监听者,可以配合ps -A命令查看具体的pid是哪个进程

Uid u0a237:
    state=cch
    capability=------
    appWidgetVisible=false
      POST_NOTIFICATION: mode=ignore
      LEGACY_STORAGE: mode=allow
    Package com.alphainventor.filemanager:
      WAKE_LOCK (allow): 
        null=[
          Access: [top-s] 2023-11-14 11:33:19.924 (-7d1h1m54s148ms) duration=+42ms
        ]
      READ_EXTERNAL_STORAGE (allow): 
        null=[
          Access: [top-s] 2023-11-14 11:33:16.111 (-7d1h1m57s961ms)
        ]

这是按具体的Uid(包名),打印出最近的访问记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1240661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

No matching variant of com.android.tools.build:gradle:7.4.2 was found.

一、报错信息 创建个新项目,运行直接报错,信息如下: No matching variant of com.android.tools.build:gradle:7.4.2 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar,…

【VRTK】【VR开发】【Unity】8-可交互对象

【概述】 之前我们只是用了一个简单方块作为可交互对象。其实可交互对象可以有许多细节设置,包括具体抓握物体的哪个点,指定抓握的方向,指定Secondary Action允许两手互换抓握,双手抓握,用两手改变物体大小等。 【拾取物体】 要让一个物体能够被拾取,必须设置它为可互…

AT89S52单片机的最小应用系统

目录 ​一.时钟电路设计 1.内部时钟方式 2.外部时钟方式 3.时钟信号的输出 二.机器周期,指令周期与指令时序 1.时钟周期 2.机器周期 3.指令周期 三.复位操作和复位电路 1.复位操作 2 复位电路设计 四.低功耗节电模式 AT89S52本身片内有8KB闪烁存储器&am…

[SIGGRAPH-23] 3D Gaussian Splatting for Real-Time Radiance Field Rendering

pdf | proj | code 本文提出一种新的3D数据表达形式3D Gaussians。每个Gaussian由以下参数组成:中心点位置、协方差矩阵、可见性、颜色。通过世界坐标系到相机坐标系,再到图像坐标系的仿射关系,可将3D Gaussian映射到相机坐标系,通…

CQ 社区版 V2.6.0 发布 | SQL闪回、权限看板、新增数据源人大金仓等

前言 HELLO,大家好,又到了 CloudQuery 社区版发版时间!本次更新版本为 v2.6.0,亮点多多,我们直入主题一起来看! 一、本期亮点 新增 3 种数据源支持 V2.6.0,新增三种国产数据源支持&#xff…

机器视觉公司为什么宁愿高薪招新人,也不愿加薪留老员工?老员工特殊时间特殊照顾,新人必须常照顾

​职场常出现的“薪酬倒挂”现象。其实这是正常的职场规律,实际上是企业管理不得不面对的一种选择。 很多企业宁愿老员工离职也不加薪,却高薪请新员工?这就是职场上的鲶鱼效应,一些高层领导认为一个企业,老员工好比沙…

【nlp】2.8 注意力机制拓展

注意力机制拓展 1 注意力机制原理1.1 注意力机制示意图1.2 Attention计算过程1.3 Attention计算逻辑1.4 有无attention模型对比1.4.1 无attention机制的模型1.4.2 有attention机制的模型1 注意力机制原理 1.1 注意力机制示意图 Attention机制的工作原理并不复杂,我们可以用下…

模拟量采集----测量输入的电流

生活中的模拟量有很多 大多都为电压信号和电流信号 今天讲如何测量输入的电流信号 通过欧姆定律可知 电流测量的测量:是将电流加载在固定阻值的电阻上,来测量这个电阻二端的电压 最后反算出电流的大小 所用的公式是IU/R 我们使用仿真软件来看测量…

④【Set】Redis常用数据类型: Set [使用手册]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Redis Set ④Redis Set 操作命令汇总1. sadd …

【开源】基于Vue.js的康复中心管理系统

项目编号: S 056 ,文末获取源码。 \color{red}{项目编号:S056,文末获取源码。} 项目编号:S056,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员…

【网络奇缘】- 计算机网络|性能指标|体系结构

🌈个人主页: Aileen_0v0🔥系列专栏: 一见倾心,再见倾城 --- 计算机网络~💫个人格言:"没有罗马,那就自己创造罗马~" 目录 温故而知新 计算机网络性能指标 时延 时延带宽积 往返时延RTT 访问百度​编辑 访问b站 访问谷歌 …

DRF-项目-(1):构建纯净版的drf项目,不再使用django的后台管理,django的认证,django的session等功能,作为一个纯接口项目

项目的目录结构: -HeartFailure |-- apps |--user |--HeartFailure |-- static |--manage.py 一、django项目相关的 1、命令行中创建django项目 #1、切换到指定的虚拟环境中 workon my_drf#2、该虚拟环境已经安装好django和rest_framework了 django-admin startp…

基于VM虚拟机下Ubuntu18.04系统,Hadoop的安装与详细配置

参考博客: https://blog.csdn.net/duchenlong/article/details/114597944 与上面这个博客几乎差不多,就是java环境配置以及后面的hadoop的hdfs-site.xml文件有一些不同的地方。 准备工作 1.更新 # 更新 sudo apt update sudo apt upgrade2.关闭防火…

git stash 用法总结

目录 1,介绍场景1:场景2: 2,常用命令2.1,基础2.2,进阶1,存储时指定备注2,通过索引来操作指定的存储3,修改存储规则 2.3,查看 stash 修改的具体内容 1&#xf…

Ubuntu20安装ssh服务

Ubuntu20上执行如下命令查看是否存在ssh服务 #ps -e | grep ssh 只有ssh-agent,没有sshd; 因此要安装openssh-server. 搜索openssh-server,得到下载链接: openssh-server 复制这个Binary Package链接即可下载,然后使用如下命令安装 sudo…

04-React脚手架 集成Axios

初始化React脚手架 前期准备 1.脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目 1.包含了所有需要的配置(语法检查、jsx编译、devServer…)2.下载好了所有相关的依赖3.可以直接运行一个简单效果 2.react提供了一个用于创建react项目的脚手架库…

洛谷 P4552 [Poetize6] IncDec Sequence

挺好的一道思维题。 分析 因为是对区间修改,多次修改肯定会超时,很容易想到差分。 那么原题的对区间修改就可以转换为下面三个操作(均在差分数组中): 1. 任选一个数1 2. 任选一个数-1 3. 任选两个数1和-1 进一步考…

MongoDB——索引(单索引,复合索引,索引创建、使用)

MongoDB索引 官方文档 https://docs.mongodb.com/manual/indexes/#create-an-index 默认索引 _id index Mongodb 在 collection 创建时会默认建立一个基于_id 的唯一性索引作为 document 的 primarykey,这个 index 无法被删除 单个字段索引 单字段索引是 Mongo…

网络渗透测试(wireshark 抓取QQ图片)

1.打开wireshark 这里我用的wifi连接 所以点开wifi就好 打开wifi之后就开始在本机上进行抓包了 我们先给我们的QQ发送一张图片,用自己的手机发送给电脑 然后点击左上角的正方形,停止捕获抓包 QQ的关键词是oicq,所以我们直接找 打开oicq …

【libGDX】使用Mesh绘制矩形

1 前言 使用Mesh绘制三角形 中介绍了绘制三角形的方法,本文将介绍绘制正方形的方法。 libGDX 以点、线段、三角形为图元,没有提供绘制矩形内部的接口。要绘制矩形内部,必须通过三角形拼接而成,如下图,是通过GL_TRIANGL…