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

Android13 framework层添加关机接口

framework层修改:
t0_sys/frameworks/base/core/api/current.txt

     method @RequiresPermission(android.Manifest.permission.REBOOT) public void reboot(@Nullable String);
+    method public void rebootp();

t0_sys/frameworks/base/core/java/android/os/IPowerManager.aidl

+void rebootp();

t0_sys/frameworks/base/core/java/android/os/PowerManager.java

+    public void rebootp(){
+        try{
+             mService.rebootp();
+        } catch (RemoteException e){
+            throw e.rethrowFromSystemServer();
+        }
+    }
+

t0_sys/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java

+import java.io.IOException;+        @Override // Binder call
+        public void rebootp(){
+            try {
+                  Runtime.getRuntime().exec("reboot -p");   //关机
+                } catch (IOException e) {
+                e.printStackTrace();
+                }
+        }

由于添加了系统API,执行lunch后,先执行 make update-api 命令更新系统API 后再执行 make -j24编译源码

APP使用反射调用关机接口
1.编写反射接口

public class PowerManagerUtils {private static final String CLASS = "android.os.PowerManager";private static final String UART_POWER_OPEN = "rebootp";public static void open(PowerManager manager) {try {Class<?> spClass = Class.forName(CLASS);Method getMethod = spClass.getMethod(UART_POWER_OPEN);getMethod.invoke(manager);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}}

2.调用反射执行PowerManager类中的rebootp方法

PowerManager powerManager;
powerManager = (PowerManager) getSystemService(POWER_SERVICE);
PowerManagerUtils.open(powerManager);

相关文章:

Android13 framework层添加关机接口

framework层修改&#xff1a; t0_sys/frameworks/base/core/api/current.txt method RequiresPermission(android.Manifest.permission.REBOOT) public void reboot(Nullable String);method public void rebootp();t0_sys/frameworks/base/core/java/android/os/IPowerManager…...

GDB调试入门笔记

文章目录 What&#xff1f;WhyHow安装GDB安装命令查看是否安装成功调试简单的程序预备一个程序调试 使用breakinfolistnextprintstep一些小技巧在gdb前shell日志功能watch point| catch point 调试core调试一个运行的程序 What&#xff1f; GDB是什么&#xff1f; 全称GNU sym…...

JavaScript的`call`方法:实现函数间的调用!

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

qt5-入门-使用拖动方式创建Dialog

参考&#xff1a; C GUI Programming with Qt 4, Second Edition 本地环境&#xff1a; win10专业版&#xff0c;64位&#xff0c;Qt5.12 目录 实现效果基本流程逐步实操1&#xff09;创建和初始化子部件2&#xff09;把子部件放进布局中3&#xff09;设置tab顺序4&#xff09…...

【Redis】RedisTemplate和StringRedisTemplate的区别

两者的关系是 StringRedisTemplate 继承 RedisTemplate 。 两者的数据是不共通的&#xff1a;也就是说 StringRedisTemplate 只能管理 StringRedisTemplate 里面的数据&#xff0c;RedisTemplate 只能管理 RedisTemplate 中的数据。 RedisTemplate 看这个类的名字后缀是 Temp…...

面试经典150题(101-104)

leetcode 150道题 计划花两个月时候刷完之未完成后转&#xff0c;今天&#xff08;第1天&#xff09;完成了4道(101-104)150&#xff1a; 101.(215. 数组中的第K个最大元素) 题目描述&#xff1a; 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请…...

Java实现读取转码写入ES构建检索PDF等文档全栈流程

背景 之前已简单使用ES及Kibana和在线转Base64工具实现了检索文档的demo&#xff0c;并已实现WebHook的搭建和触发流程接口。 传送门&#xff1a; 基于GitBucket的Hook构建ES检索PDF等文档全栈方案 使用ES检索PDF、word等文档快速开始 实现读取本地文件入库ES 总体思路&…...

主流开发环境和开发语言介绍

主流开发环境和开发语言介绍 一、主流开发环境介绍 主流开发环境是指广泛应用于软件开发的集成开发环境&#xff08;Integrated Development Environment&#xff0c;简称IDE&#xff09;。IDE是一种集成了编辑器、编译器、调试器等工具的软件&#xff0c;提供了一站式的开发环…...

C++ 使用 nlohmann::json存储json文件

C 使用 nlohmann::json存储json文件 nlohmann::json 概述JSON 存储的示例以追加的方式存储json文件 nlohmann::json 概述 nlohmann::json 是 C 中一个流行的 JSON 库&#xff0c;由 Niels Lohmann 开发。它提供了一个简单而强大的 API&#xff0c;用于解析、构建、操作和序列化…...

何为OOM(Out of Memory)?

OOM&#xff08;Out of Memory&#xff09; 是指程序运行过程中内存不足的情况。在 Spark 应用程序中&#xff0c;OOM 是一个非常常见的问题&#xff0c;尤其是在处理大规模数据集或执行资源密集型的操作时。当 Spark 作业尝试使用的内存超过了为其分配的内存限制时&#xff0c…...

SpringBoot+Mybatis-plus+shardingsphere实现分库分表

SpringBootMybatis-plusshardingsphere实现分库分表 文章目录 SpringBootMybatis-plusshardingsphere实现分库分表介绍引入依赖yaml配置DDL准备数据库ds0数据库ds1 entitycotrollerserviceMapper启动类测试添加修改查询删除 总结 介绍 实现亿级数据量分库分表的项目是一个挑战…...

FPGA DDR3简介及时序

一&#xff0c;DDR3基础知识 1、DDR3全称第三代双倍速率同步动态随机存储器。 特点:①掉电无法保存数据&#xff0c;需要周期性的刷新。 ②时钟上升沿和下降沿都会传输数据。 ③突发传输,突发长度Burst Length一般为8 2、DDR3的存储: bank、行地址和列地址 数据怎么存入到D…...

java网络编程 02 socket

01.socket定义 02.TCP编程 import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket;public class clientSocket {public static void main(String[] args) throws IOException {Socket socket new Socket(Ine…...

【Web安全】SQL各类注入与绕过

【Web安全】SQL各类注入与绕过 【Web安全靶场】sqli-labs-master 1-20 BASIC-Injection 【Web安全靶场】sqli-labs-master 21-37 Advanced-Injection 【Web安全靶场】sqli-labs-master 38-53 Stacked-Injections 【Web安全靶场】sqli-labs-master 54-65 Challenges 与62关二…...

C++ 设计模式

文章目录 类图泛化实现关联聚合组合依赖总结 类内部的三种权限&#xff08;公有、保护、私有&#xff09;类的三种继承方式描述与图总结 面向对象七大原则单一职责原则&#xff08;Single Responsibility Principle&#xff09;里氏替换原则&#xff08;Liskov Substitution Pr…...

安卓使用ExoPlayer出现膨胀类异常

1.导包 implementation com.google.android.exoplayer:exoplayer-core:2.15.1implementation com.google.android.exoplayer:exoplayer-ui:2.15.1 2.在Androidifest.xml加入权限&#xff0c;我这里加了网络与读写权限 <uses-permission android:name"android.permissio…...

C++之析构函数

在 C 中&#xff0c;析构函数&#xff08;Destructor&#xff09;是一个特殊的成员函数&#xff0c;用于在对象生命周期结束时执行清理工作和资源释放。析构函数的名称与类名相同&#xff0c;前面加上波浪号&#xff08;~&#xff09;&#xff0c;不接受任何参数&#xff0c;也…...

108. 将有序数组转换为二叉搜索树【简单】

108. 将有序数组转换为二叉搜索树【简单】 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉…...

vue3中watch和watchEffect的区别!!!

vue3中watch和watchEffect的区别&#xff01;&#xff01;&#xff01; 在 Vue 3 中&#xff0c;watch 和 watchEffect 都是监听器&#xff0c;但在写法和使用上有所区别。让我们来详细了解一下它们之间的不同&#xff1a; watch: watch 具有一定的惰性&#xff08;lazy&#…...

【JavaEE初阶 -- 计算机核心工作机制】

这里写目录标题 1.冯诺依曼体系2.CPU是怎么构成的3.指令表4.CPU执行代码的方式5.CPU小结&#xff1a;6.编程语言和操作系统7. 进程/任务&#xff08;Process/Task&#xff09;8.进程在系统中是如何管理的9. CPU分配 -- 进程调度10.内存分配 -- 内存管理11.进程间通信 1.冯诺依曼…...

Python: 多优化算法TSP求解方案,物流路径规划代码实践 - 附详尽注释及标准数据集

Python&#xff1a;模拟退火算法、蚁群算法、遗传算法、粒子群算法求解旅行商问题(TSP)的Python代码程序。 物流路径规划问题。 -- 数据集采用的tsplib标准数据集&#xff0c;可以根据自己需求修改城市坐标。 代码完整&#xff0c;注释详细&#xff0c;打印每次迭代结果&#x…...

手把手教你用Ollama命令搭建个人AI助手:从拉取Llama 3到定制化部署

从零构建智能对话引擎&#xff1a;Ollama与Llama 3的深度实践指南 在人工智能技术日益普及的今天&#xff0c;拥有一个个性化的AI助手已成为许多开发者和技术爱好者的追求。不同于云端服务的黑箱操作&#xff0c;本地部署的AI模型能提供更高的隐私保护和定制自由度。本文将带你…...

5个步骤彻底修复Windows更新问题:Reset Windows Update Tool完整指南

5个步骤彻底修复Windows更新问题&#xff1a;Reset Windows Update Tool完整指南 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool …...

抖音无水印视频批量下载全攻略:技术解析与实战指南

抖音无水印视频批量下载全攻略&#xff1a;技术解析与实战指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...

金仓数据库KingbaseES KSQL命令行工具实战指南:从基础操作到高级调优

1. KSQL命令行工具入门指南 第一次接触金仓数据库的KSQL命令行工具时&#xff0c;我完全被它强大的功能震撼到了。作为DBA日常运维的瑞士军刀&#xff0c;KSQL不仅能完成基本的数据库操作&#xff0c;还能进行深度性能分析和调优。记得刚开始使用时&#xff0c;我还在纠结要不要…...

终极指南:如何用NSC_BUILDER一键搞定Switch游戏文件管理

终极指南&#xff1a;如何用NSC_BUILDER一键搞定Switch游戏文件管理 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase titlerights encryp…...

银行客户流失预警:用SMOTE与集成学习模型(如EasyEnsemble)应对数据不平衡挑战

银行客户流失预警&#xff1a;用SMOTE与集成学习模型应对数据不平衡挑战 在金融行业&#xff0c;客户流失预警一直是银行风控体系中的核心环节。当银行面临客户流失&#xff08;少数类&#xff09;远少于未流失客户&#xff08;多数类&#xff09;的情况时&#xff0c;传统的机…...

B2B战略到营销分解实战:OGSM / 主题 / 内容 / 渠道 / 节奏五层框架

# B2B战略到营销分解实战&#xff1a;OGSM / 主题 / 内容 / 渠道 / 节奏五层框架先给结论&#xff1a;很多B2B企业真正缺的不是动作&#xff0c;而是把战略翻译成可协同、可执行、可复盘的年度经营结构。## 一、定义 B2B战略到营销分解是什么&#xff1a;把品牌战略中的目标客户…...

AD5246数字电位器驱动库详解与I²C工程实践

1. AD5246 数字电位器库深度技术解析1.1 器件本质与工程定位AD5246 并非传统意义上的“可编程电阻”&#xff0c;而是一款单通道、IC 接口、128 抽头数字可变电阻器&#xff08;Digital Rheostat&#xff09;。其核心价值在于以数字方式精确控制模拟电路中的阻值&#xff0c;替…...

什么是GEO优化(生成式引擎优化)?一文讲透

# 什么是GEO优化&#xff08;生成式引擎优化&#xff09;&#xff1f;一文讲透GEO优化即生成式引擎优化&#xff0c;是面向豆包等AI大模型平台的新型营销优化方式&#xff0c;是AI时代企业抢占流量新入口的核心营销手段。沈阳锦恒智联信息科技有限公司是辽宁本地专业的GEO优化服…...