网站建设 策划方案/友链购买有效果吗
20250205确认荣品RK3566开发板在Android13下可以使用命令行reboot -p关机
2025/2/5 16:10
缘起:荣品RK3566开发板在Android13下,希望通过Native C语言程序来控制RK3566的关机。
通过ADB,很容易通过reboot -p命令关机。
最开始以为需要su/root权限。现在看来/最终确认普通用户也是可以关机的。
1|console:/ $
1|console:/ $
1|console:/ $ reboot -p
[ 84.254964][ T150] init: Received sys.powerctl='shutdown,shell' from pid: 2039 (reboot)
Done
[ 84.255027][ T150] init: sys.powerctl: do_shutdown: 0 IsShuttingDown: 0
console:/ $ [ 84.255255][ T1] init: Got shutdown_command 'shutdown,shell' Calling HandlePowerctlMessage()
[ 84.255298][ T1] init: Clear action queue and start shutdown trigger
[ 84.255386][ T1] init: Entering shutdown mode
[ 84.255604][ T1] init: processing action (shutdown_done) from (<Builtin Action>:0)
[ 84.255642][ T1] init: Reboot start, reason: shutdown,shell, reboot_target:
[ 84.255688][ T1] init: Shutdown timeout: 6000 ms
[ 84.255711][ T1] init: Create reboot monitor thread.
[ 84.256413][ T2040] init: shutdown_timeout_timespec.tv_sec: 387
[ 84.370627][ T2041] watchdogd: watchdogd started (interval 10, margin 20)!
I/TA: Goodbye Rockchip Weaver!
[ 84.417523][ T179] logd: logdr: UID=1000 GID=1000 PID=2043 n tail=127 logMask=19 pid=0 start=0ns deadline=0ns
I/TA: Goodbye Rockchip gatekeeper!
[ 84.485103][ T184] type=1400 audit(1737619408.576:403): avc: denied { unlink } for comm="init" name="camera_tool" dev="tmpfs" ino=649 scontext=u:r:init:s0 tcontext=u:object_r:socket_device:s0 tclass=sock_file permissive=1
[ 84.495728][ T2050] logd: SocketClient: write error (Broken pipe)
[ 84.539742][ T84] binder: release 327:344 transaction 4883 in, still active
[ 84.539791][ T84] binder: send failed reply for transaction 4883 to 514:627
I/TA: Goodbye Rockchip Keymaster!
[ 85.037539][ T151] printk: init: 16 output lines suppressed due to ratelimiting
[ 85.091834][ T187] binder_alloc: 514: binder_alloc_buf, no vma
[ 85.091874][ T187] binder: 187:187 transaction failed 29189/-3, size 100-0 line 3346
[ 85.191687][ T84] android_work: sent uevent USB_STATE=DISCONNECTED
[ 85.215034][ T183] printk: logd.klogd: 179 output lines suppressed due to ratelimiting
[ 85.389177][ T35] binder: undelivered TRANSACTION_COMPLETE
[ 85.389286][ T35] binder: undelivered transaction 36306, process died.
[ 85.389367][ T35] binder: undelivered TRANSACTION_ERROR: 29189
[ 85.389785][ T35] binder: undelivered death notification, b400007bb29ec6f0
[ 85.394438][ T36] binder: undelivered death notification, b400007bb2a70900
[ 85.567479][ T1] [dhd] dhd_reboot_callback: code = 3
[ 85.567597][ T1] [dhd] dhd_module_cleanup: Enter
[ 85.567715][ T1] [dhd] sdioh_remove: Enter
[ 85.568938][ T1] [dhd] dhdsdio_disconnect : no mutex held
[ 85.568953][ T1] [dhd] dhdsdio_disconnect : set mutex lock
[ 85.568969][ T1] [dhd] dhd_detach: making dhdpub up FALSE
[ 85.568982][ T1] [dhd] bcmsdh_oob_intr_unregister: Enter
[ 85.568989][ T1] [dhd] bcmsdh_oob_intr_unregister: irq is not registered
[ 85.568998][ T1] [dhd] dhd_wlfc_deinit():3894, Already disabled!
[ 85.618495][ T1] [dhd] dhd_detach(): thread:dhd_watchdog_thread:18f wait for terminate
[ 85.618592][ T1] [dhd] dhd_detach(): thread:dhd_watchdog_thread:18f terminated OK
[ 85.618654][ T1] [dhd] dhd_detach(): thread:dhd_rxf:192 wait for terminate
[ 85.618830][ T1] [dhd] dhd_detach(): thread:dhd_rxf:192 terminated OK
[ 85.618897][ T1] [dhd] dhd_detach(): thread:dhd_dpc:191 wait for terminate
[ 85.618931][ T401] [dhd] dhd_dpc_thread: Unexpected up_cnt 0
[ 85.618961][ T1] [dhd] dhd_detach(): thread:dhd_dpc:191 terminated OK
[ 85.645543][ T1] [dhd] CFG80211-ERROR) wl_cfg80211_clear_per_bss_ies : netinfo or netinfo->wdev is NULL
[ 85.718642][ T1] [dhd] dhd_tcpack_suppress_set: TCP ACK Suppress mode 2 -> mode 0
[ 85.718729][ T1] [dhd] dhd_tcpack_suppress_set: TCPACK_INFO_MAXNUM=40, TCPDATA_INFO_MAXNUM=40
[ 85.718935][ T1] [dhd] STATIC-MSG) dhd_wlan_mem_prealloc : section 7, size 0
[ 85.718981][ T1] [dhd] dhdsdio_disconnect : mutex is released.
[ 85.720271][ T1] [dhd] unregister wifi platform drivers
[ 85.720324][ T1] [dhd] wifi_platform_bus_enumerate device present 0
[ 85.720355][ T1] [dhd] ======== Card detection to remove SDIO card! ========
[ 85.720383][ T1] [dhd] dhd_wlan_deinit_gpio: gpio_free(WL_HOST_WAKE 0)
[ 85.720431][ T1] [dhd] STATIC-MSG) dhd_static_buf_exit : Enter
[ 85.720759][ T1] [dhd] dhd_module_cleanup: Exit
[ 85.722395][ T1] rk808 0-0020: reboot: not restore POWER_EN
[ 86.028316][ T1] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp1
[ 86.065446][ T1] mpp_rkvdec2 fdf80200.rkvdec: shutdown device
[ 86.071499][ T1] mpp_rkvdec2 fdf80200.rkvdec: shutdown success
[ 86.077637][ T1] mpp_rkvenc fdf40000.rkvenc: shutdown device
[ 86.083579][ T1] mpp_rkvenc fdf40000.rkvenc: shutdown success
[ 86.113787][ T1] fan53555-regulator 0-001c: fan53555..... reset
[ 86.121108][ T1] fan53555-regulator 0-001c: reset: force fan53555_reset ok!
[ 86.138647][ T1] [WLAN_RFKILL]: Enter rfkill_wlan_shutdown
[ 86.144442][ T1] [WLAN_RFKILL]: rockchip_wifi_power: 0
[ 86.149866][ T1] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[ 86.156409][ T1] [WLAN_RFKILL]: wifi shut off power [GPIO-1-1]
[ 86.162529][ T1] [WLAN_RFKILL]: rfkill_set_wifi_bt_power: 0
[ 86.169151][ T1] rkisp_hw fdff0000.rkisp: rkisp_hw_shutdown
[ 86.175146][ T1] mpp-iep2 fdef0000.iep: shutdown device
[ 86.180660][ T1] mpp-iep2 fdef0000.iep: shutdown success
[ 86.186317][ T1] mpp_vepu2 fdee0000.vepu: shutdown device
[ 86.192072][ T1] mpp_vepu2 fdee0000.vepu: shutdown success
[ 86.197928][ T1] mpp_jpgdec fded0000.jpegd: shutdown device
[ 86.203792][ T1] mpp_jpgdec fded0000.jpegd: shutdown success
[ 86.209786][ T1] mpp_vdpu2 fdea0400.vdpu: shutdown device
[ 86.215479][ T1] mpp_vdpu2 fdea0400.vdpu: shutdown success
[ 86.221608][ T1] xhci-hcd xhci-hcd.0.auto: remove, state 4
[ 86.227396][ T1] usb usb6: USB disconnect, device number 1
[ 86.234564][ T1] xhci-hcd xhci-hcd.0.auto: USB bus 6 deregistered
[ 86.241498][ T1] xhci-hcd xhci-hcd.0.auto: remove, state 4
[ 86.247303][ T1] usb usb5: USB disconnect, device number 1
[ 86.254537][ T1] xhci-hcd xhci-hcd.0.auto: USB bus 5 deregistered
[ 86.272716][ T1] reboot: Power down
百度:
RK3566 android13 命令行关机
rk3566 android13 命令行关机
https://blog.csdn.net/u011928958/article/details/142413108
Android 命令行关机
在 Android 设备上,可以通过以下命令行命令来关机:
adb shell reboot -p
其中:
adb shell:通过 ADB 进入设备的命令行环境。
reboot -p:执行关机操作,-p 表示关机而不是重启。
如果你是在设备本地的终端上而不是通过 ADB,可以直接使用:
reboot -p
这个命令会立即关闭设备。如果你需要更复杂的关机流程或自定义行为,也可以通过修改系统服务实现。
简单的Native C语言程序请参考:Z:\Android13.0\external\sc16is752
Z:\Android13.0\external\reboot1p
Z:\Android13.0\external\reboot1p\Android.mk
Z:\Android13.0\external\reboot1p\reboot1p.c
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := reboot1p.c
LOCAL_MODULE := reboot1p
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_OWNER := root
LOCAL_MODULE_GROUP := root
LOCAL_MODULE_SUFFIX :=
include $(BUILD_EXECUTABLE)
reboot1p.c
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/i2c-dev.h>
#include <unistd.h>
#include <linux/spi/spidev.h>
#include <time.h>
#include <getopt.h>
#include <string.h>
//int main(int argc, char *argv[])
int main(void)
{
//system("echo 64 > /sys/class/gpio/export");
system("reboot -p");
return 0;
}
相关文章:

20250205确认荣品RK3566开发板在Android13下可以使用命令行reboot -p关机
20250205确认荣品RK3566开发板在Android13下可以使用命令行reboot -p关机 2025/2/5 16:10 缘起:荣品RK3566开发板在Android13下,希望通过Native C语言程序来控制RK3566的关机。 通过ADB,很容易通过reboot -p命令关机。 最开始以为需要su/root…...

设计模式---观察者模式
设计模式—观察者模式 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决的问题:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,…...

初八开工!开启数字化转型新征程!
新年新气象,大年初八,我们斗志昂扬,共同奔赴充满希望的新一年! 2025 年意义非凡,这是广州市开利网络科技有限公司成立的第 18 个年头 。回首过往,我们一路拼搏,一路成长,积累了深厚的…...

文本分析NLP的常用工具和特点
1)非上下文感知型文本分析工具和特点 特性VADERTextBlob适合文本类型短文本、非正式语言(如评论、推文)中等长度、正式文本情感强度分析支持(正面、负面、中性)支持(极行、主观性)处理表情符号…...

DeepSeek 与 ChatGPT 对比分析
一、技术背景与研发团队 ChatGPT 由 OpenAI 开发,自 2015 年 OpenAI 成立以来,经过多年的技术积累和迭代,从 GPT-1 到 GPT-4o,每一次升级都带来了技术上的突破。OpenAI 拥有雄厚的技术实力和海量的数据、强大的算力支持ÿ…...

vite---依赖优化选项esbuildOptions详解
optimizeDeps.esbuildOptions vite.optimizeDeps.esbuildOptions 是 Vite 配置中的一个选项,它允许你在 Vite 启动时,给 esbuild(Vite 用来处理代码转换和优化的工具)传递额外的配置。通过这个配置项,你可以自定义 esb…...

ElasticSearch 学习课程入门(二)
引子 前文已经介绍了ES的增删改查基本操作,接下来,我们学习下高级点的用法。OK,那就让我们开始吧。 一、ES高级操作 1、条件查询 (1)GET https://127.0.0.1:9200/shopping/_search?qcategory:小米 (2&…...

使用 Redis Streams 实现高性能消息队列
1. 引言 在后端开发中,消息队列是一个常见的组件,主要用于解耦系统、提高吞吐量以及实现异步处理。常见的消息队列包括 Kafka、RabbitMQ 以及 ActiveMQ,但 Redis Streams 作为 Redis 5.0 引入的新特性,也提供了一种高效、轻量的消…...

深度学习|表示学习|卷积神经网络|DeconvNet是什么?|18
如是我闻: DeconvNet(反卷积网络)是一种可视化 CNN(卷积神经网络)内部特征的方法,用于理解 CNN 是如何提取图像特征的。这个方法由 Zeiler & Fergus(2013) 提出,目的…...

(优先级队列(堆)) 【本节目标】 1. 掌握堆的概念及实现 2. 掌握 PriorityQueue 的使用
优先级队列(堆) 1. 优先级队列1.1 概念 2. 优先级队列的模拟实现2.1 堆的概念2.2 堆的存储方式2.3 堆的创建2.3.1 堆向下调整2.3.2 堆的创建2.3.3 建堆的时间复杂度 【本节目标】 掌握堆的概念及实现掌握 PriorityQueue 的使用 1. 优先级队列 1.1 概念…...

优化数据库结构
MySQL学习大纲 一个好的数据库设计方案对于数据库的性能尝尝会起到事倍功半的效果,合理的数据库结构不仅使数据库占用更小的磁盘空间,而且使查询速度更快。数据库结构的设计需要考虑数据冗余、查询和更新速度、字段的数据类型是否合理等多方面的内容&…...

密云生活的初体验
【】在《岁末随笔之碎碎念》里,我通告了自己搬新家的事情。乙巳年开始,我慢慢与大家分享自己买房装修以及在新家的居住体验等情况。 跳过买房装修的内容,今天先说说这三个月的生活体验。 【白河】 潮白河是海河水系五大河之一,贯穿…...

图像分类与目标检测算法
在计算机视觉领域,图像分类与目标检测是两项至关重要的技术。它们通过对图像进行深入解析和理解,为各种应用场景提供了强大的支持。本文将详细介绍这两项技术的算法原理、技术进展以及当前的落地应用。 一、图像分类算法 图像分类是指将输入的图像划分为…...

计算机网络——流量控制
流量控制的基本方法是确保发送方不会以超过接收方处理能力的速度发送数据包。 通常的做法是接收方会向发送方提供某种反馈,如: (1)停止&等待 在任何时候只有一个数据包在传输,发送方发送一个数据包,…...

体验 DeepSeek 多模态大模型 Janus-Pro-7B
含有图片的链接: https://mp.weixin.qq.com/s/i6kuVcGU1CUMYRPDM-bKog?token2020918682&langzh_CN 继上篇文章下载了 Janus-Pro-7B 后,准备本地运行时发现由于电脑配置配置太低(显存小于24G),无法运行࿰…...

使用mockttp库模拟HTTP服务器和客户端进行单元测试
简介 mockttp 是一个用于在 Node.js 中模拟 HTTP 服务器和客户端的库。它可以帮助我们进行单元测试和集成测试,而不需要实际发送 HTTP 请求。 安装 npm install mockttp types/mockttp模拟http服务测试 首先导入并创建一个本地服务器实例 import { getLocal } …...

解决每次打开终端都需要source ~/.bashrc的问题(记录)
新服务器或者电脑通常需要设置一些环境变量,例如新电脑安装了Anaconda等软件,在配置环境变量后发现每次都需要重新source,非常麻烦,执行下面添加脚本实现一劳永逸 vim .bash_profile# .bash_profileif [ -f ~/.bashrc ]; then. ~…...

UE5 蓝图学习计划 - Day 14:搭建基础游戏场景
在上一节中,我们 确定了游戏类型,并完成了 项目搭建、角色蓝图的基础设置(移动)。今天,我们将进一步完善 游戏场景,搭建 地形、墙壁、机关、触发器 等基础元素,并添加角色跳跃功能,为…...

C++常用拷贝和替换算法
算法简介: copy // 容器内指定的元素拷贝到另一容器replace // 将容器内指定范围的旧元素改为新元素replace_if // 容器内指定范围满足条件的元素替换为新元素swap //互换两个容器的元素 1. copy 功能描述: 将容器内指定范围的数据拷贝到另一容器中函…...

取消和确认按钮没有显示的问题
取消和确认按钮没有显示的问题<template #footer> <template #footer> <!-- 使用插槽名称 #footer --> <span class"dialog-footer"> <el-button click"dialogVisible false">取消</el-button> …...

Python安居客二手小区数据爬取(2025年)
目录 2025年安居客二手小区数据爬取观察目标网页观察详情页数据准备工作:安装装备就像打游戏代码详解:每行代码都是你的小兵完整代码大放送爬取结果 2025年安居客二手小区数据爬取 这段时间需要爬取安居客二手小区数据,看了一下相关教程基本…...

Java/Kotlin HashMap 等集合引发 ConcurrentModificationException
在对一些非并发集合同时进行读写的时候,会抛出 ConcurrentModificationException 异常产生示例 示例一(单线程): 遍历集合时候去修改 抛出 ConcurrentModificationException 的主要原因是当你在遍历一个集合(如 Map…...

【Day31 LeetCode】动态规划DP Ⅳ
一、动态规划DP Ⅳ 1、最后一块石头的重量II 1049 这题有点像脑筋急转弯,尽量让石头分成重量相同的两堆(尽可能相同),相撞之后剩下的石头就是最小的。明白这一点,就与上一篇博客里的划分等和数组很相似。划分等和数组…...

Unity 2D实战小游戏开发跳跳鸟 - 记录显示最高分
上一篇文章中我们实现了游戏的开始界面,在开始界面中有一个最高分数的UI,本文将接着实现记录最高分数以及在开始界面中显示最高分数的功能。 添加跳跳鸟死亡事件 要记录最高分,则需要在跳跳鸟死亡时去进行判断当前的分数是否是最高分,如果是最高分则进行记录,如果低于之前…...

Ollama AI 开发助手完全指南:从入门到实践
本文将详细介绍如何使用 Ollama AI 开发助手来提升开发效率,包括环境搭建、模型选择、最佳实践等全方位内容。 © ivwdcwso (ID: u012172506) 目录 基础环境配置模型选择与使用开发工具集成实践应用场景性能优化与注意事项最佳实践总结一、基础环境配置 1.1 系统要求 在…...

Racecar Gym
Racecar Gym 参考:https://github.com/axelbr/racecar_gym/blob/master/README.md 1. 项目介绍 Racecar Gym 是一个基于 PyBullet 物理引擎的 reinforcement learning (RL) 训练环境,模拟微型 F1Tenth 竞速赛车。它兼容 Gym API 和 PettingZoo API&am…...

代码随想录36 动态规划
leetcode 343.整数拆分 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: n 1…...

离散时间傅里叶变换(DTFT)公式详解:周期性与连续性剖析
摘要 离散时间傅里叶变换(DTFT)是数字信号处理领域的重要工具,它能将离散时间信号从时域转换到频域,揭示信号的频率特性。本文将深入解读DTFT公式,详细阐述其具有周期性和连续性的原因,帮助读者全面理解DT…...

深度学习|表示学习|卷积神经网络|Batch Normalization在干什么?|19
如是我闻: Batch Normalization(批归一化,简称 BN) 是 2015 年由 Ioffe 和 Szegedy 提出 的一种加速深度神经网络训练并提高稳定性的技术。 它的核心思想是:在每一层的输入进行归一化,使其均值接近 0&…...

Go基础之环境搭建
文章目录 1 Go 1.1 简介 1.1.1 定义1.1.2 特点用途 1.2 环境配置 1.2.1 下载安装1.2.2 环境配置 1.2.2.1 添加环境变量1.2.2.2 各个环境变量理解 1.2.3 验证环境变量 1.3 包管理工具 Go Modules 1.3.1 开启使用1.3.2 添加依赖包1.3.3 配置国内包源 1.3.3.1 通过 go env 配置1.…...