调用号(以arm平台为例)在/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h

  1. /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  2. #define __NR_restart_syscall (__NR_SYSCALL_BASE+ 0)
  3. #define __NR_exit (__NR_SYSCALL_BASE+ 1)
  4. #define __NR_fork (__NR_SYSCALL_BASE+ 2)
  5. #define __NR_read (__NR_SYSCALL_BASE+ 3)
  6. /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  7. #define __NR_write (__NR_SYSCALL_BASE+ 4)
  8. #define __NR_open (__NR_SYSCALL_BASE+ 5)
  9. #define __NR_close (__NR_SYSCALL_BASE+ 6)
  10. #define __NR_creat (__NR_SYSCALL_BASE+ 8)
  11. /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  12. #define __NR_link (__NR_SYSCALL_BASE+ 9)
  13. #define __NR_unlink (__NR_SYSCALL_BASE+ 10)
  14. #define __NR_execve (__NR_SYSCALL_BASE+ 11)
  15. #define __NR_chdir (__NR_SYSCALL_BASE+ 12)
  16. /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  17. #define __NR_time (__NR_SYSCALL_BASE+ 13)
  18. #define __NR_mknod (__NR_SYSCALL_BASE+ 14)
  19. #define __NR_chmod (__NR_SYSCALL_BASE+ 15)
  20. #define __NR_lchown (__NR_SYSCALL_BASE+ 16)
  21. /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  22. #define __NR_lseek (__NR_SYSCALL_BASE+ 19)
  23. #define __NR_getpid (__NR_SYSCALL_BASE+ 20)
  24. #define __NR_mount (__NR_SYSCALL_BASE+ 21)
  25. #define __NR_umount (__NR_SYSCALL_BASE+ 22)
    ......

 如何使用呢,以android5.0源码中的关机代码为例: /system/core/libcutils/android_reboot.c

  1. #include <unistd.h>
  2. #include <sys/reboot.h>
  3. #include <sys/syscall.h>            //  bionic/libc/include/sys/syscall.h
  4. #include <sys/types.h>
  5. #include <sys/stat.h>
  6. #include <fcntl.h>
  7. #include <stdio.h>
  8. #include <string.h>
  9. ......
  10. int android_reboot(int cmd, int flags UNUSED, char *arg)
  11. 108{
  12. ......
  13. switch (cmd) {
  14. ......
  15. case ANDROID_RB_RESTART2:
  16. ret = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,    // /bionic/libc/arch-arm/bionic/syscall.S
  17. LINUX_REBOOT_CMD_RESTART2, arg);
  18. ......
  19. }

  代码中直接syscall(_NR_reboot)来调用系统reboot函数,注意上面红色标注的代码。

  (dannerWorking:要分析/bionic/libc/tools/gensyscalls.py这个文件啊还没做)

参考资料:

 1 android 系统调用

android调用号和libc的更多相关文章

  1. Android调用系统相册和拍照的Demo

    最近我在群里看到有好几个人在交流说现在网上的一些Android调用系统相册和拍照的demo都有bug,有问题,没有一个完整的.确实是,我记得一个月前,我一同学也遇到了这样的问题,在低版本的系统中没问题 ...

  2. arm-eabi-addr2line工具跟踪Android调用堆栈

    使用arm-eabi-addr2line工具跟踪Android调用堆栈作者:liangshengyang转自:http://www.linuxidc.com/Linux/2011-01/31803.h ...

  3. android 调用地图

    有时候我们需要调用地图显示一下位置,这时候可能还需要导航,导航做起来有点麻烦,如果调用第三方的是不是很简单,本文就是写这个来的: 第一种方式:android Intent调用地图应用客户端 调用百度地 ...

  4. [转]JS调用Android里面的方法,Android调用JS里面的方法

    FROM : http://blog.csdn.net/hj563308597/article/details/45197709 Android WebView 在公司Android的开发过程中遇到一 ...

  5. Android调用Web服务

    现在大部分应用程序都把业务逻辑处理,数据调用等功能封装成了服务的形式,应用程序只需要调用这些web服务就好了,在这里就不赘述web服务的优点了.本文总结如何在android中调用Web服务,通过传递基 ...

  6. Android调用WebService(转)

    Android调用WebService WebService是一种基于SOAP协议的远程调用标准,通过 webservice可以将不同操作系统平台.不同语言.不同技术整合到一块.在Android SD ...

  7. Android调用天气预报的WebService简单例子

    下面例子改自网上例子:http://express.ruanko.com/ruanko-express_34/technologyexchange5.html 不过网上这个例子有些没有说明,有些情况不 ...

  8. Android调用.net的webservice服务器接收参数为空的情况

    问题描述:安卓开发中,用Android调用.net开发的wenService时候,从Android客户端传递参数到服务器端,服务器端接收为空 解决方法: 1.设置envelope.dotNet = t ...

  9. Android调用Asp.net Web Service示例

    WebService代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

随机推荐

  1. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

  2. pytorch(06)autograd与逻辑回归

    autograd与逻辑回归 自动求导系统中两个常用的方法: torch.autograd.backward and torch.autograd.grad 演示理解一阶导数.二阶导数的求导过程 理解自 ...

  3. Centos7网络配置——设置固定ip

    有段时间没有用虚拟机了,这几天翻出了以前的虚拟机,写几个demo,但遇到了一个让人难受的问题.使用xshell远程连接虚拟机,命令还没敲几个,不到一分钟就自动断开了,只能重新再次连接.啥事都干不成,有 ...

  4. C#扩展方法的一分钟小例子

    扩展方法是静态方法,是类的一部分,但没有在类的源代码中,就像一个补丁 首先创建一个静态类,然后创建一个静态方法,重点是静态方法的参数 public static class xExtension { ...

  5. Fastjson1.2.24RCE漏洞复现

    Fastjson1.2.24RCE漏洞复现 环境搭建 这里用的Vulhub靶场 cd /vulhub/fastjson/1.2.24-rce docker-compose up -d 报错 ERROR ...

  6. allure报告详解+jenkins配置

    今天的博客分为两部分 1.allure报告实战 2.allure结合jenkins 一.allure 1.allure安装 a.下载路径 https://repo.maven.apache.org/m ...

  7. 使用代码生成工具快速开发ABP框架项目

    在一般系统开发中,我们一般要借助于高度定制化的代码生成工具,用于统一代码风,节省开发时间,提高开发效率.不同的项目,它的项目不同分层的基类定义不同,我们需要在框架基类的基础上扩展我们的业务类代码,尽量 ...

  8. 微软跨平台UI框架MAUI真的要来啦

    .NET 6 preview已经上线,是时候为在BUILD 2020上宣布的新.NET Multi-platform App UI(MAUI)做准备了.对于客户端应用程序开发人员来说,这一年.NET有 ...

  9. 用水浒传来学习OKR

    用水浒传来学习OKR 目录 用水浒传来学习OKR 0x00 摘要 0x01 OKR 1.1 基本概念 1.2 OKR管理的意义 1.3 Objective 1.3.1 什么是好的O 1.3.2 上下级 ...

  10. P2424 约数和 【整除分块】

    一.题目 P2424 约数和 二.分析 因为都是加法,那么肯定有的一个性质,即前缀和的思想,就是$$ { ans =\sum_{i=1}^y f(i)} - {\sum_{i=1}^x f(i)}   ...