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