20250205确认荣品RK3566开发板在Android13下可以使用命令行reboot -p关机

news/2025/2/6 13:03:08 标签: 数据仓库

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;
}


 


http://www.niftyadmin.cn/n/5843012.html

相关文章

高级java每日一道面试题-2025年01月28日-框架篇[SpringBoot篇]-如何使用Spring Boot实现异常处理?

如果有遗漏,评论区告诉我进行补充 面试官: 如何使用Spring Boot实现异常处理? 我回答: 在 Java 高级面试中讨论如何使用 Spring Boot 实现异常处理时&#xff0c;我们可以从多个角度进行详细阐述。这包括全局异常处理、特定异常处理、使用 ResponseStatus 注解、自定义异常…

GitHub Copilot 越狱漏洞

研究人员发现了两种操控 GitHub 的人工智能&#xff08;AI&#xff09;编码助手 Copilot 的新方法&#xff0c;这使得人们能够绕过安全限制和订阅费用、训练恶意模型等。 第一种技巧是将聊天交互嵌入 Copilot 代码中&#xff0c;利用 AI 的问答能力&#xff0c;使其产生恶意输…

PyQt6/PySide6 的 QTreeView 类

QTreeView 是 PyQt6 或 PySide6 库中用于显示分层数据的控件。它适用于展示树形结构的数据&#xff0c;如文件系统、组织结构等。QTreeView 也是基于模型-视图架构的&#xff0c;通常与 QAbstractItemModel 的子类&#xff08;如 QStandardItemModel 或自定义模型&#xff09;一…

最新EFK(Elasticsearch+FileBeat+Kibana)日志收集

文章目录 1.EFK介绍2.操作前提3.FileBeat8.15下载&安装4.编写FileBeat配置文件5.启动FileBeat6.模拟实时日志数据生成7.查看索引(数据流)是否创建成功8.创建数据视图&#xff1a;9.查看数据视图10.使用KQL对采集的日志内容进行过滤11.给日志数据配置保留天数(扩展知识) 1.E…

【力扣】48.旋转图像

AC截图 题目 思路 以矩阵 1 2 3 4 5 6 7 8 9 为例&#xff0c;想要翻转90度&#xff0c;可以先沿着对角线翻转一次 1 4 7 2 5 8 3 6 9 然后再逐行翻转&#xff0c;即可得到所求矩阵 7 4 1 8 5 2 9 6 3 代码 class Solution { public:void rotate(vector<vector…

亚远景-从SPICE到ASPICE:汽车软件开发的标准化演进

一、SPICE标准的起源与背景 SPICE&#xff0c;全称“Software Process Improvement and Capability dEtermination”&#xff0c;即“软件流程改进和能力测定”&#xff0c;是由国际标准化组织ISO、国际电工委员会IEC、信息技术委员会JTC1联合发起制定的ISO 15504标准。该标准旨…

git 指定ssh key

在git clone操作中指定SSH密钥&#xff0c;可以通过以下几种方法实现&#xff1a; 1 使用–config选项在克隆时指定密钥 当你克隆一个git仓库时&#xff0c;可以直接在命令中指定要使用的ssh密钥。这种方法适用于一次性操作&#xff0c;不需要修改全局或仓库级别的配置 git …

libdrm移植到arm设备

一、环境资源要求 下载libdrm Index of /libdrm 这边使用的是2.4.114版本&#xff0c;版本太高对meson版本要求也很高&#xff0c;为了省事用apt安装meson就不用太高版本了&#xff0c;1.x版本虽然使用makefile编译方便但是太老&#xff0c;对应用支持不太好。 https://dri…