【问题标题】:grep or find on Androidgrep 或在 Android 上查找
【发布时间】:2023-03-27 12:55:01
【问题描述】:

这些默认情况下未安装在 Android 4.2.1 上,因此可以交叉编译源代码,例如GNU grepfind 是否可以在 Android 上运行? (最好无需root设备或安装一些应用程序关闭PLAY,例如busybox。)是否有任何缺少的依赖项会阻止这种情况?我正在 Ubuntu 10.0.04 上开发

【问题讨论】:

  • 最好的答案是你应该把framaroot放在你的android上。那么任何根操作都可以@cyberSecurity

标签: c linux android-ndk


【解决方案1】:

奇怪。我在/system/xbin/* 上有他们。可能更幸运的是busybox。 busybox find busybox grep 不确定是否在 Android 4.2 上默认安装了busybox,但它是一个非常常见的二进制文件。

【讨论】:

  • 我也将busybox用于'grep'的东西......但似乎如果我从/ - >根位置搜索所有子目录,它就像'挂起'一样停止。你有过这样的@ablm 经历吗?
【解决方案2】:

这不是一个完整的答案,因为我没有尝试构建 grepfind。然而,一般来说,为 Android 构建 GNU 实用程序是完全可能的。为此,最好的选择是:

  1. 下载 Android 原生开发工具包
  2. 构建安卓standalone toolchain by referring to docs/STANDALONE-TOOLCHAIN.html in the NDK
  3. 只需使用普通的./configure && make 机制构建相关的 GNU 实用程序。

然后,您需要将生成的二进制文件复制到您的 Android 设备上,您可以使用 adb push 完成此操作。您可能需要安排将它们放入 /data/ 某处,因为 /mnt/sdcard 通常被标记为不可执行。

缺少依赖项

在实际构建过程中您会发现的主要问题是 Android 不使用标准 GNU libc (glibc)。相反,它使用自己的,称为仿生。这确实错过了某些重要的 API - 例如,宽字符串支持。

我发现对于一些 GNU 实用程序来说这是可以的,它们可以通过最少的源代码更改进行编译。

但是,如果您遇到麻烦,最好使用这些实用程序的其他版本,这些实用程序通常设计用于在底层 libc 方面提供更大的灵活性。具体来说,之前关于使用busybox 的建议非常好。如果你不想从安卓市场安装,你可以找到源代码here

【讨论】:

    猜你喜欢
    • 2013-03-15
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    相关资源
    最近更新 更多