问题描述
想知道,如果他从另一个类似Ubuntu的Linux系统中获取mkfs.ext3
文件,或者任何其他的mkfs
文件,并将其放置在/system/xbin
目录下,与他的mkfs.vfat
和mkfs.ext2
文件一起,这样做是否可行?同时,他想知道如何在终端模拟器中调用它们。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
根据最佳答案,本地二进制文件(如mkfs.*
工具)需要针对它们应该运行的平台进行编译。因此,如果你从你的Ubuntu工作站获取mkfs.ext3
,它可能是x86或x86-64架构,它将不能在你的Android设备上运行,因为后者很可能使用ARM架构。
方案1
如果你从兼容的平台(即也是ARM v6架构)获取,它可能可以工作。当以静态方式编译时,它应该可以工作。否则(动态编译),取决于所使用的库:如果这些库在目标系统上可用,那应该没有问题。需要注意的是,这个解释并不特定于所讨论的二进制文件,而是适用于所有本地二进制文件。
在这种情况下,你可以尝试在兼容的ARM v6平台上寻找二进制文件。调用它们的方式与通常相同,通过它们的名称调用。如果以参数为空的方式调用,它应该显示其语法要求。如果出现“未找到”的错误提示,使用完整路径调用,例如/system/xbin/mkfs.ext3
。
方案2
考虑到在网络上找不到可靠的二进制文件源,你可以选择使用交叉编译器(cross compiler)来编译(静态地)使用busybox
的工具。由于你正在使用Cyanogenmod,因此使用Cyanogenmod源代码编译它应该也很容易。在他们的网站上搜索相关信息(由于我无法发布更多链接)即可找到busybox
在external/
目录下的位置。
需要注意的是,使用Cyanogenmod编译需要下载约9GB的源代码,仅为了下载构成Cyanogenmod的一小部分,这可能会非常繁琐。同时,从网络上找到软件并在手机上安装并不是一个良好的做法。
在尝试下载或编译前,请务必备份重要数据,并仔细阅读相关文档以确保操作正确。
注意: 以上方案可能需要一定的技术知识和操作经验,因此请谨慎使用,并根据自己的情况决定是否采用。