我的情况是我必须调试的程序必须在 chrooted 环境中运行。现在我已经在另一个根目录中安装了 gdb 并复制了源代码,这适用于基本设置,但不是很方便,因为我每次进行更改和重新编译时都必须重新同步源代码,而且我必须复制我所有的 gdb 设置等等。
有什么方法可以在我的正常环境中运行调试器来调试在 chrooted 环境中运行的程序?我在 Arch Linux 上。
我想做点什么:
schroot -c name -u root "export A=3 && export B=4"
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
Failed to execute “export”: No such file or directory
Run Code Online (Sandbox Code Playgroud)
换句话说,我希望能够以编程方式在schroot环境中执行shell命令.获得这种行为的正确方法是什么?
我们有一些专门开发的C++应用程序,仅适用于Debian stable(x86).
目前,这些应用程序的开发也是使用Debian stable(x86)系统完成的,因此开发人员拥有与目标系统相同的库版本.
偶尔,我还需要处理这些组件,并且一直困扰我,因为我坚持使用非常过时的KDevelop版本(4.0.1与最新的4.4.1).我想使用更新的系统进行开发(比如最新的Ubuntu或Debian测试),但是如何创建适合目标系统的二进制文件呢?
是否有一些简单的方法可以告诉编译器/链接器只使用目标平台上可用的库版本?
我看了Emdebian和他们的交叉编译包,但我不认为这对我有用.他们似乎只有针对ARM等其他架构的软件包.
我在 root 权限下使用 termux。我的手机有 aarch64 cpu 架构。我正在尝试使用我见过的 amd64 架构来 chroot ubuntu 文件系统,这https://unix.stackexchange.com/a/222981 这是我的命令
sudo chroot ubuntu /bin/qemu-x86_64-static /bin/bash --login
我成功登录,但是当我运行命令
ls或任何命令时
它给出了一个错误,就像Exec format error
我用 qemu-x86_64-static 尝试了该命令一样,qemu-x86_64-static /bin/ls它成功执行了,有什么想法吗???
我想我可以为所有以 qemu-x86_64-static 开头的命令添加别名,但这不是一个好主意......
我想编写一个应用程序来根植安装它的设备,我的意思是通过安装这个应用程序,您将能够在没有计算机的情况下根植您的设备,就像以下链接中的应用程序一样,
http://www.kingoapp.com/root-tutorials/how-to-root-android-without-computer.htm
我已经搜索了很多关于如何使用 Android 设备的 Java 代码来做到这一点,但我没有明确的解决方案。根据我的研究,我认为我们需要以下步骤:
1- 能够在 Android 中使用 shell 命令使用 Runtime.getRuntime().exec();
2-执行获得root权限的命令(我认为su,但这需要一个root设备才能执行)。
3- 启动一个 root 命令,该命令将 root 设备。
我找不到有关如何执行上述步骤的代码说明。我想先了解一下这个过程,里面可以用到的命令,然后我想尝试自己实现。由于商店中提供此功能的应用程序很多,因此实现它必须是可行的。
任何人都可以向我解释如何实施这个过程吗?
另外,是否有可能为相反的过程编写代码,即取消设备的root 权限?
任何帮助表示赞赏。
谢谢。