有没有办法在安卓上直接运行二进制文件呢?(已 ROOT) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
k1rin
V2EX    Android

有没有办法在安卓上直接运行二进制文件呢?(已 ROOT)

  •  
  •   k1rin 2024-11-11 17:13:52 +08:00 6948 次点击
    这是一个创建于 413 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说在后台自动运行 restic 进行备份文件,在通过 rsync 同步到 NAS 上。

    当然,也可以通过 Syncthing 同步到 NAS 上,这我也在用,只是提供一个应用场景。

    我想知道:

    1. 是否可行?重启后能否自启动。
    2. 是不是可以通过写一个 Magisk 模块来实。(目前只会装模块,不太了解怎么写
    第 1 条附言    2024-11-11 19:12:02 +08:00
    应该确定就是 Termux 了,感谢推荐
    之前了解到的时候还没敲过命令行,现在一看是真有用。
    18 条回复    2024-11-13 20:47:45 +08:00
    RightHand
        1
    RightHand  
       2024-11-11 17:22:36 +08:00 via Android
    可以先用 adb 直接跑
    hrdom
        2
    hrdom  
       2024-11-11 17:23:14 +08:00   1
    ”有没有办法在安卓上直接运行二进制文件“ 有办法,不过这个二进制文件编译时要配置好安卓的 c 库
    BeautifulSoap
        3
    BeautifulSoap  
       2024-11-11 17:26:09 +08:00
    termux 不就是干这个的
    gam2046
        4
    gam2046  
       2024-11-11 17:26:15 +08:00
    1 & 2:可以

    与手动运行方式无异。程序得先通过 NDK 交叉编译到 Android ,如果直接通过 ARM 编译器静态编译,最终会出现域名无法解析的情况。
    EvineDeng
        5
    EvineDeng  
       2024-11-11 17:29:08 +08:00   2
    termux 你值得拥有,在里面直接安装 restic, rsync, syncthing 都可以。

    如果需要开机自启,除了在手机中相关设置项中设置好外,termux 中还需要安装借助 cronie 来跑自动任务,借助 termux-service 这个包来创建自动启动任务。
    k1rin
        6
    k1rin  
    OP
       2024-11-11 17:32:32 +08:00
    @hrdom
    @gam2046
    好的,就是所有二进制文件都要自己通过源码加安卓 NDK 编译一次对吗,我去了解下。

    @RightHand
    @BeautifulSoap
    我想问下,这样能保持在后台吗,开机能自启动吗,我不太了解
    k1rin
        7
    k1rin  
    OP
       2024-11-11 17:33:35 +08:00
    @EvineDeng wow ,我去看看 termux
    k1rin
        8
    k1rin  
    OP
       2024-11-11 18:45:20 +08:00
    @EvineDeng 我想问下,可以通过 SSH 到 termux 进行操作吗?在手机上敲命令行太痛苦了
    k1rin
        9
    k1rin  
    OP
       2024-11-11 18:49:15 +08:00
    @EvineDeng 在官方 Wiki 找到了
    EvineDeng
        10
    EvineDeng  
       2024-11-11 21:26:04 +08:00
    @Ploter #9 手动开就是运行 sshd ,自动开就安装 termux-service ,然后启用 sshd 的 service 。
    EvineDeng
        11
    EvineDeng  
       2024-11-11 21:26:59 +08:00   1
    @Ploter #9 国光的 termux 教程可以重点参考一下: https://www.sqlsec.com/2018/05/termux.html
    holoto
        12
    holoto  
       2024-11-11 21:33:57 +08:00
    安装 Termux 然后通过 https://github.com/ochinchina/supervisord 挂一个 ttyd 后台。然后可以网页访问 ssh 了。静态文件服务器可以用 dufs
    Magisk 模块可以设置自启动的。去 Magisk 模块目录修改下已经安装的 Magisk 模块。改启动 sh 文件 挂个 supervisord 后台就行
    liujl
        13
    liujl  
       2024-11-11 23:43:17 +08:00 via Android
    @holoto 很感兴趣,ttyd 具体怎么做?
    iceheart
        14
    iceheart  
       2024-11-11 23:44:13 +08:00 via Android
    我以前玩过,13 年用一个很便宜的平板 root 了,改启动脚本,电源模式设为关屏,不断网,不休眠。从 linux deploy 里取出启动容器的脚本,启动时自动运行。这样就用安卓的 linux 内核跑了个 ubuntu 。
    yolee599
        15
    yolee599  
       2024-11-12 09:01:15 +08:00 via Android   1
    使用 NDK 编译就行了,编译出来的二进制文件可以用命令行执行
    k1rin
        16
    k1rin  
    OP
       2024-11-12 11:08:29 +08:00
    @EvineDeng #10 Termux: Boot 是不是只在系统启动时发挥作用而不是应用启动时,这样好奇怪啊
    k1rin
        17
    k1rin  
    OP
       2024-11-12 14:37:42 +08:00
    @Ploter #16 明白了,要用 termux-service 才是创建系统服务。Boot 主要是开机启动。
    rev1si0n
        18
    rev1si0n  
       2024-11-13 20:47:45 +08:00
    答案是可以的,即使不 root 也可以,区别大概只是权限问题

    1. 用 termux ,有 termux boot 插件可以实现自启动
    2. 本人开发的 https://github.com/firerpa/lamda 支持 magisk 模块自启动,可以远程连接操作,并且内置 shell 支持 rsync 命令以及 crontab 规则实现定期备份。
    3. 如果命令还不够你折腾的,可以安装扩展插件实现内置小型的 debian 环境,可以 apt 安装大部分软件或者自行编译。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2457 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 15:44 PVG 23:44 LAX 07:44 JFK 10:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86