为Android增加一个关机命令
来源:互联网 发布:大数据 服务型政府 编辑:程序博客网 时间:2024/06/14 10:58
首先在external目录下创建一个目录shutdown,然后进入shutdown目录,创建两个文件Android.mk和shutdown.c,增加内容如下:
#define LOG_TAG "shutdown"#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/reboot.h>#include <utils/Log.h>int main(int argc, char *argv[]){int ret;ALOGI("Shutdown now...\n");ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,RB_POWER_OFF, NULL);if (ret < 0) {ALOGE("Shutdown failed!\n");exit(-1);}return 0;}
Android.mk
LOCAL_PATH :=$(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := shutdown.cLOCAL_SHARED_LIBRARIES := liblogLOCAL_MODULE := shutdowninclude $(BUILD_EXECUTABLE)
mm方式编译一下,然后push到/system/bin目录下,执行shutdown命令就可以实现关机操作了。
// 2015.07.30 add
shutdown.c修改如下:
#define LOG_TAG "shutdown"#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/reboot.h>#include <utils/Log.h>int main(int argc, char *argv[]){ int ret; ALOGI("Shutdown now...\n"); /*ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, RB_POWER_OFF, NULL);*/ ret = reboot(RB_POWER_OFF); if (ret < 0) { ALOGE("Shutdown failed!\n"); exit(-1); } return 0;}这里采用reboot这个系统调用,这个系统调用是glibc提供的,原型如下:
#include <unistd.h>#include <sys/reboot.h>int reboot(int cmd);通过man可以看到常见支持下面的命令:
LINUX_REBOOT_CMD_RESTARTLINUX_REBOOT_CMD_POWER_OFF
分别对应重启和关机,而这里为什么用了RB_POWER_OFF这个参数呢,可以在android中的bionic/libc/include/sys/reboot.h文件中看到RB_POWER_OFF就是一个宏定义,定义为LINUX_REBOOT_CMD_POWER_OFF。
0 0
- 为Android增加一个关机命令
- android-----关机命令---------------
- 为增加一个字段
- a33/android 4.4 增加关机音乐
- 自己实现Android关机命令
- 自己实现Android关机命令
- 自己实现Android关机命令
- 调用Android系统关机命令
- 为uboot增加自定义命令
- XP中的一个远程关机命令
- 一个命令搞定定时关机/重启
- 一个关机命令引发系列问题
- Android 增加一个property
- Android 增加一个property .
- Android定制化------关机事件及增加功能
- 自己写android的关机命令
- android 调用系统命令实现关机
- android 调用系统命令实现关机
- 超级详细解读基本排序算法(不看后悔,带排序演示动画)
- PHP Memcached的扩展
- read和fread
- Git客户端(Windows系统)的使用
- 图形验证码
- 为Android增加一个关机命令
- [java]初学者java编译时错误小总结
- 程序的 编译 && 链接 && 装载
- CAN比较
- 使用 Spring Boot 快速构建 Spring 框架应用
- iOS 企业证书发布app 流程
- CentOS 6.6 安装工具,使用rz和sz命令
- 正则表达式(二)--常用正则表达式
- C++:按值传递的还有地址