【问题标题】:accessing android os root files访问android os根文件
【发布时间】:2012-06-09 17:30:17
【问题描述】:

我有以下疑问:

我读过android os是基于linux的,我想它可能和ubuntu有相同的结构(在文件配置方面:/root、/dev等)。 那么,是否可以在 android 中运行用 C 编写的应用程序?就像在 ubuntu 中可以做的那样?如果是这样,我该怎么做?

另外,如何通过 android 应用程序(用 java 编写)访问根文件?以及如何访问操作系统的行为(例如中断)?

提前感谢您的回答。

gus

【问题讨论】:

  • 我支持这个问题,但你为什么要这样做?
  • 如果你想开发一个杀毒软件或类似的东西,并且像在 ubuntu 中一样对机器有更高的控制权。

标签: android c operating-system controls


【解决方案1】:

Android 智能手机/平板电脑使用 Arm cpu,而不是 x85。架构不同。 但是如果你为arm linux交叉编译它,你可以在android中运行一个C应用程序。或者您可以在 android 设备中使用 c 编译器。人们将c编译器移植到android。你可以试试 C4DROID 和安卓市场。但是由于sd卡的android权限,你只能在系统内存中运行编译好的程序。

【讨论】:

    【解决方案2】:

    您可以使用Runtime.exec 运行程序。例如,您可以看到 Terminal IDE 运行许多不同的程序,包括 ssh、vim 和 bash。它也是开源的,因此您可以向code 学习。您可能必须将可执行文件作为资源或资产包含在内,然后复制到本地目录,授予执行权限,然后使用Runtime.exec 运行。由于您的应用在受限帐户下运行,因此您仍然拥有有限的用户权限,除非设备已获得 root 权限并且您请求 root 访问权限。

    【讨论】:

      【解决方案3】:

      您可以使用 NDK 在 android 上运行 C and C++ 代码。你也可以使用QT 框架。但是代码在名为 Davlik 的虚拟机中运行。 Android 有 r​​oot 帐号,但默认用户不可用。因此,对目录的访问依赖于chmod

      如果您想阅读有关在 android 中访问低级别的信息: http://www.phrack.org/issues.html?issue=68&id=6

      关于这个系统的架构: https://developer.android.com/guide/basics/what-is-android.html

      【讨论】:

      • 感谢您的回答,非常有用。但是再深入挖掘一下android os的结构,现在我有以下疑问: 1.当你使用app添加联系人(比如电话号码)时,这些信息保存在手机的什么地方?我可以访问那个位置吗?如果是这样,如何? 2. 是否可以访问正在插入应用程序的信息?例如:假设一个应用程序正在运行并且用户在应用程序的一个字段中插入一些信息,是否可以通过另一个应用程序访问该信息? (由于它们在“不同的”虚拟机中运行)。再次感谢,格斯。
      • 1.联系人和其他数据存储在SQLite db 2. 在VM 应用程序中有其他自己的进程。 2.在linux中使用ptrace可以访问其他进程。在android中可能是类似的。
      【解决方案4】:

      基本答案:不支持在 Android 上运行 C 应用程序,除非通过本机开发工具包 (NDK)。

      您无法访问根文件,除非通过手机 root。

      您可以通过 API 访问某些操作系统行为。基本上,如果它不是 API 的一部分,您就无法访问它。

      Android 操作系统基于 Linux,但它是一个操作系统,而不是像 X 那样的窗口服务器或像 Gnome 或 KDE 这样的桌面环境。

      【讨论】:

      • 感谢您的回答,现在我理解得更好了。但是现在我有以下疑问: 1.当你使用应用程序添加联系人(例如电话号码)时,该信息保存在手机中的哪里?我可以访问那个位置吗?如果是这样,如何? 2. 是否可以访问正在插入应用程序的信息?例如:假设一个应用程序正在运行并且用户在应用程序的一个字段中插入一些信息,是否可以通过另一个应用程序访问该信息? (由于它们在“不同的”虚拟机中运行)。再次感谢,格斯。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多