当前位置: 首页 > news >正文

Android 13 系统自定义安全水印

  • 效果
    在这里插入图片描述

  • 源码实现

frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java

public final void showSafeModeOverlay() {View v = LayoutInflater.from(mContext).inflate(com.android.internal.R.layout.safe_mode, null);WindowManager.LayoutParams lp = new WindowManager.LayoutParams();lp.type = WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY;lp.width = WindowManager.LayoutParams.WRAP_CONTENT;lp.height = WindowManager.LayoutParams.WRAP_CONTENT;//lp.gravity = Gravity.BOTTOM | Gravity.START;//修改为居中显示lp.gravity = Gravity.CENTER;lp.format = v.getBackground().getOpacity();lp.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;lp.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE)).addView(v, lp);
}
  • 源码调用

frameworks/base/services/java/com/android/server/SystemServer.java

	//if(safeMode){//默认设置为安全模式mActivityManagerService.showSafeModeOverlay();//}
  • 布局

frameworks/base/core/res/res/layout/safe_mode.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content" android:layout_height="wrap_content"android:textAppearance="?android:attr/textAppearanceLarge"android:gravity="center"android:padding="3dp"android:background="@drawable/safe_mode_background"android:textColor="@color/safe_mode_text"android:text="@string/safeModeTest"
/>
  • 资源

frameworks/base/core/res/res/values/string.xml

<string name="safeModeTest">Debug version, cannot be used for external provision</string>

frameworks/base/core/res/res/values-zh-rCN/string.xml

<string name="safeModeTest">当前是调试版本,不可用于对外提供</string>
http://www.lryc.cn/news/347159.html

相关文章:

  • C# WCF服务(由于内部错误,服务器无法处理该请求。)
  • 利用github pages建立Serverless个人博客
  • Spring Boot 集成 sa-token 实践教程
  • CSS:盒子模型
  • django中的cookie与session
  • 环形链表(判断链表中是否有环)的讲解
  • NLP(14)--文本匹配任务
  • MySQL——系统变量
  • 「 网络安全常用术语解读 」漏洞利用预测评分系统EPSS详解
  • 理解python中的Iterator 和 Iterable 迭代器和可迭代对象
  • C语言实现动态加载.so动态库,使用,错误捕获以及卸载
  • 《动手学深度学习》V2(11-18)
  • web前端之excel转pdf、小黄人发送请求、base64、jspdf、xlsx
  • 【面试题】音视频流媒体高级开发(2)
  • 数据与结构--堆
  • Github的使用教程(下载项目、寻找开源项目和上传项目)
  • Linux-线程概念
  • js的桶排序
  • 解决ubuntu无法上网问题
  • 使用nvm管理多版本node.js
  • 推导 模型矩阵的逆转置矩阵求运动物体的法向量
  • 定时任务的几种实现方式
  • docker部署springboot+Vue项目
  • Llama3-Tutorial(Llama 3 超级课堂)-- 笔记
  • 【备战软考(嵌入式系统设计师)】12 - 嵌入式系统总线接口
  • 【一刷《剑指Offer》】面试题 18:树的子结构
  • 17 M-LAG 配置思路
  • 深入探索CSS3 appearance 属性:解锁原生控件的定制秘密
  • C# 集合(五) —— Dictionary类
  • Java 函数式接口BiConsumer