Android-Framework 清除应用用户数据,不清除权限
一、环境
高通865 Android 10
二、具体详情
现象:默认赋予第三方应用的权限,在应用信息中清理用户数据的时候,权限也会被清理掉;
希望:只清理数据,保留权限
相关源码修改如下:
frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -4064,6 +4064,8 @@ public class ActivityManagerService extends IActivityManager.Stub@Overridepublic boolean clearApplicationUserData(final String packageName, boolean keepState,final IPackageDataObserver observer, int userId) {
+ //not remove Permission
+ keepState=true;enforceNotIsolatedCaller("clearApplicationUserData");int uid = Binder.getCallingUid();int pid = Binder.getCallingPid();
@@ -4748,7 +4750,7 @@ public class ActivityManagerService extends IActivityManager.Stub}// Remove transient permissions granted from/to this package/user
- mUgmInternal.removeUriPermissionsForPackage(packageName, userId, false, false);
+ // mUgmInternal.removeUriPermissionsForPackage(packageName, userId, false, false);if (doit) {for (i = mBroadcastQueues.length - 1; i >= 0; i--) {
frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
InstallArgs args = data.args;PackageInstalledInfo parentRes = data.res;- final boolean grantPermissions = (args.installFlags
- & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0;
+ // final boolean grantPermissions = (args.installFlags
+ // & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0;
+ final boolean grantPermissions = true;final boolean killApp = (args.installFlags& PackageManager.INSTALL_DONT_KILL_APP) == 0;final boolean virtualPreload = ((args.installFlags
@@ -19953,7 +19954,7 @@ public class PackageManagerService extends IPackageManager.Stub}PackageSetting ps = (PackageSetting) pkg.mExtras;
- resetUserChangesToRuntimePermissionsAndFlagsLPw(ps, userId);
+ //resetUserChangesToRuntimePermissionsAndFlagsLPw(ps, userId);}clearAppDataLIF(pkg, userId,
安装应用时,默认给权限,请查阅另外一篇博客:
Android-Framework 默认给安装的应用赋权限-CSDN博客
相关文章:
Android-Framework 清除应用用户数据,不清除权限
一、环境 高通865 Android 10 二、具体详情 现象:默认赋予第三方应用的权限,在应用信息中清理用户数据的时候,权限也会被清理掉; 希望:只清理数据,保留权限 相关源码修改如下: frameworks/base/servi…...
CS认证办理流程,CS认证好处
CS资质全名叫“信息系统建设和服务能力评估体系” 所谓的CS认证,是指信息系统建设和服务能力评级。认证一共划分为五个等级,等级从低到高分别用CS1级(初始级)、CS2级(基本级)、CS3级(良好级&…...
macOS 安装brew
参考链接: https://mirrors4.tuna.tsinghua.edu.cn/help/homebrew/ https://www.yii666.com/blog/429332.html 安装中科大源的: https://zhuanlan.zhihu.com/p/470873649...
H5: 使用Web Audio API播放音乐
简介 记录关于自己使用 Web Audio API 的 AudioContext 播放音乐的知识点。 需求分析 1.列表展示音乐; 2.上/下一首、播放/暂停/续播; 3.播放模式切换:循环播放、单曲循环、随机播放; 4.播放状态显示:当前播放的音乐…...
Parasoft C/C++test:汽车网络安全ISO 21434最佳实践
为什么汽车网络安全很重要Why Automotive Cybersecurity Is Important 许多汽车公司向电子道路车辆的转变从根本上改变了整个行业,提高了汽车的互联性和智能性。随着电子汽车变得更加互联和智能,它们也越来越依赖软件来实现车辆操作,驱动更多…...
如何卸载干净 IDEA(图文讲解)windows和Mac教程
大家好,我是sun~ 很多小伙伴会问 Windows / Mac 系统上要怎么彻底卸载 IDEA 呢? 本文通过图片文字,详细讲解具体步骤: 如何卸载干净 IDEA(图文讲解) Windows1、卸载 IDEA 程序2、注册表清理3、残留清理 M…...
Docker搭建Gitlab
拉取镜像:docker pull gitlab/gitlab-ce创建映射目录: mkdir -p /usr/local/gitlab/config mkdir -p /usr/local/gitlab/data mkdir -p /usr/local/gitlab/logs运行容器: docker run -d -p 443:443 -p 8000:8000 -p 222:22 --name gitlab …...
STM32F4X SDIO(四) SDIO控制器
STM32F4X SDIO(四) SDIO控制器 STM32F4X SDIO控制器SDIO控制器框图SDIO控制器时钟适配器寄存器FIFO控制单元命令路径数据路径 SDIO寄存器SDIO控制相关寄存器SDIO电源控制寄存器 (SDIO_POWER)SDIO时钟控制寄存器 (SDIO_CLKCR)SDIO_CK相位 SDIO命令响应相关…...
【flink】Task 故障恢复详解以及各重启策略适用场景说明
文章目录 一. 重启策略种类(Restart Strategies)1. Fixed Delay Restart Strategy2. Failure Rate Restart Strategy3. Fallback Restart Strategy4. No Restart Strategy 二. 故障恢复策略(Failover Strategies)1. (全…...
一个计算机高手的成长3
这是转在茶余的帖子。文中绝大部分技术术语我不懂,所以无资格评论他的技术价值。但文章强烈的逻辑说服力,和通篇流露的进取精神,使我觉得这是篇有价值的帖子,至少值得一读。 就像我开始从MIS转到通信一样,我看过大量通…...
2023应届生能力考试含解析(Java后端开发)——(1)
1.以下代码的循环次数是 ( ) public class Test {public static void main(String[] args) {int i 7;do {System.out.println(--i);--i;} while (i ! 0);System.out.println(i);} } A 0 B 1 C 7 D 无限次 这段代码会导致无限循环的原因是在 do-while 循环中&#…...
Ansible中的任务执行控制
循环 简单循环 {{item}} 迭代变量名称 loop: - value1 - value2 - ... //赋值列表{{item}} //迭代变量名称循环散列或字典列表 - name: create filehosts: host1tasks:- name: file moudleservice:name: "{{ item.name }}"state: "{{…...
利用maven的dependency插件分析工程的依赖
dependency:analyze https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html 分析项目的依赖,确定哪些:用了并且声明了、用了但没有声明、没有使用但声明了。 dependency:analyze可以单独使用,所以它总是会执行test-…...
【广州华锐互动】VR野外求生技能学习,让你感受真实的冒险之旅!
随着科技的迅速发展,虚拟现实(VR)技术为人们提供了一个全新的、身临其境的探险体验。通过将用户带入一个仿真的、沉浸式的虚拟环境,VR互动体验让人们在安全的氛围中感受到野外探险的乐趣。本文将从视觉呈现、沉浸式体验、交互性和应用范围四个方面&#…...
k8s、调度约束
Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦 用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。 APIS…...
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
目录 一. Redis简介 二. Redis的安装 2.1 Linux版安装 2.2 windows版安装 三. Redis的常用命令 一. Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。 它…...
电子器件 MOS管的参数、选型与使用技巧
一、电路符号 MOS管分为 G(栅极)、S(源极)、D(漏极) 三极,在图中 S 极有两条线,D 极只有一条线。 1.1 NMOS 和 PMOS 下图中,左侧是 PMOS,右侧是 NMOS。箭头…...
EtherCAT主站SOEM -- 2 -- SOEM之ethercatbase.h/c文件解析
EtherCAT主站SOEM -- 2 -- SOEM之ethercatbase.h/c文件解析 一 ethercatbase.h/c文件功能预览:二 ethercatbase.h/c 文件的主要函数的作用:2.1 ecx_writedatagramdata:2.2 ecx_setupdatagram:2.3 ecx_adddatagram:2.4 …...
Spring集成高性能队列Disruptor
Disruptor简介 Disruptor(中文翻译为“破坏者”或“颠覆者”)是一种高性能、低延迟的并发编程框架,最初由LMAX Exchange开发。它的主要目标是解决在金融交易系统等需要高吞吐量和低延迟的应用中的并发问题。 Disruptor特点 无锁并发&#x…...
C++——类和对象(中)完结
赋值运算符重载 运算符重载 C 为了增强代码的可读性引入了运算符重载 , 运算符重载是具有特殊函数名的函数 ,也具有其 返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。 函数名字为:关键…...
深入解析BLE空口报文抓取:从GAP广播到LESC安全通信全流程
1. BLE空口报文抓取基础 想要分析BLE设备间的通信过程,抓取空口报文是最直接有效的方法。这就像在两个人对话时,用录音设备记录下他们的每一句话。不过BLE通信使用的是2.4GHz无线频段,我们无法直接用耳朵听到这些"对话",…...
10分钟快速上手Muzic:从零开始你的AI音乐创作之旅
10分钟快速上手Muzic:从零开始你的AI音乐创作之旅 【免费下载链接】muzic 这是一个微软研究院开发的音乐生成AI项目。适合对音乐、音频处理以及AI应用感兴趣的开发者、学生和研究者。特点是使用深度学习技术生成音乐,具有较高的创作质量和听觉体验。 项…...
foobox-cn:让foobar2000焕发新生的界面增强工具
foobox-cn:让foobar2000焕发新生的界面增强工具 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 还在忍受foobar2000单调的默认界面吗?想让音乐播放体验更加赏心悦目且功能丰富…...
为什么92%的Polars新手在join时OOM?揭秘2.0新版streaming引擎的5个关键启用条件
第一章:Polars 2.0 大规模数据清洗技巧 面试题汇总Polars 2.0 引入了更严格的惰性执行模型、增强的字符串/时间解析能力,以及对空值传播行为的统一语义,使其在高频面试场景中成为考察候选人工程化数据处理能力的关键工具。以下为高频面试题及…...
YOLOv8训练自己的道路裂缝数据集,从数据标注到模型部署的保姆级避坑指南
YOLOv8道路裂缝检测实战:从数据标注到模型部署的全流程避坑指南 道路养护工程师小张最近遇到了头疼的问题——每天需要人工巡检数十公里道路,用粉笔标记裂缝位置再拍照记录。这种传统方式效率低下且容易遗漏细微裂缝。直到他发现了YOLOv8这个目标检测利器…...
【多模态实战】Swift框架高效微调Qwen2-VL:从SFT到RLHF的完整指南
1. 为什么选择Swift框架微调Qwen2-VL 第一次接触Qwen2-VL这个多模态大模型时,我被它强大的图文理解能力惊艳到了。但真正让我惊喜的是发现Swift框架能让模型微调变得如此简单。记得当时为了测试一个定制化需求,传统方法需要写上百行训练代码,…...
电子工程开发工具全解析:从EDA到嵌入式系统
电子工程常用开发工具全景解析1. 电子工程软件工具概述电子工程作为信息技术的重要分支,其技术体系涵盖电路设计、信号处理、通信系统等多个专业领域。现代电子工程开发已形成完整的工具链体系,主要包括以下几类:EDA工具:电路设计…...
Dropout、DropConnect、Standout...12种正则化变种,到底该用哪个?一份给炼丹师的避坑指南
Dropout变种全景指南:从理论到实战的12种策略深度解析 当你的神经网络在验证集上表现不佳时,第一个跳入脑海的解决方案是什么?对于大多数从业者来说,Dropout无疑是正则化工具箱中的首选武器。但你是否知道,标准Dropout…...
一、Cisco(静态端口映射实战:从零搭建外网可访问的多服务内网环境)
1. 环境准备与拓扑设计 第一次接触端口映射时,我也被那些专业术语搞得晕头转向。直到自己动手在Cisco Packet Tracer里搭了一套环境,才发现原来原理这么简单。这次我们就用最基础的设备,还原企业里常见的多服务发布场景。 实验设备清单就像搭…...
论文被吐槽逻辑乱?,有哪些真正实测靠谱的的降AI率工具推荐?
毕业论文降AIGC率,优先选语义重构 去AI痕迹 降查重率的工具,免费与付费结合最稳妥。下面按中文、英文、免费/付费分类推荐,附实测效果与适用场景。 一、中文论文降重工具(最常用) 1. 千笔AI(综合全能首选…...
