emacs 在 android 15 好像没权限运行 am 和 /system/bin/sh 了

~ $ am start -a android.intent.action.VIEW -t video/any -p is.xyz.mpv.ytdl -d "https://example.org/media.png"
/data/data/com.termux/files/usr/bin/am: 30: exec: /system/bin/app_process: Operation not permitted

~ $ /system/bin/sh
bash: /system/bin/sh: Operation not permitted

~ $ /system/bin/app_process
bash: /system/bin/app_process: Operation not permitted

~ $ termux-am start -a android.intent.action.VIEW -t video/any -p is.xyz.mpv.ytdl -d "https://example.org/media.png" 
Starting: Intent { act=android.intent.action.VIEW dat=https://example.org/... typ=video/any pkg=is.xyz.mpv.ytdl }

am 可以用 termux-am 替代,但 /system/bin/sh 和 app_process 用不了好像就没办法使用 shizuku 的 adb 权限了,有什么其他方式获得 adb 权限吗

emacs 版本是最新的 emacs-31.0.50-35-arm64-v8a

手机是 三星

你的系统有 /system/bin/app_process 么? 能否运行一下 getprop

我也插队问一句,Emacs Android附带的Termux环境好像只包含本体,Termux文档里提到的那些可选插件都没有,有点限制了它的可用性,例如

有没有可能一并提供所有插件的下载呢?

这些插件应该都可以用吧,只是可能要与emacs android以及termux本体的签名和userid保持一致才可以调用

对,我的意思就是Emacs Android提供的Termux为了能和Emacs共享文件,它的签名是和上游不一样的,所以上游的插件应该无法直接用。

我只用 termux-api,从 release 下载 apk 后,再从这里下载 keystore: https://github.com/emacs-mirror/emacs/raw/refs/heads/master/java/emacs.keystore

运行 apksigner sign --ks "keystore路径" --ks-pass "pass:emacs1" --ks-key-alias "Emacs keystore" "apk路径",会生成新 apk,安装这个就好了

apksigner 可以在其他系统安装,termux 里的 apksigner 不知道能不能用

1 个赞

能否发一个尝试执行 /system/bin/app_process64 后的 logcat?

这个问题我也不太确定是不是 android 15 的问题。

我在正常使用到发生这种报错的时间段,做过这几步操作:

  1. 更新系统 14 到 15
  2. 更新系统安全补丁
  3. emacs 更新到最新版本(可能有一个多月没更新)
  4. 重装 termux,emacs

我发现 am 没法在 emacs 正常使用是在 3 以后,这个时候报错不记得是不是我发的这种。

然后我尝试重装 termux 和 emacs,才注意到 app_process 运行不了。

我找到最类似的情况是这个,发生时间相近且三星手机,不同的是我不用 proot:

可能就是这个原因;Emacs 内置有类似 proot 的 loader 工具,由 android-use-exec-loader 这个选项控制。

2 个赞

确实是这个,设为 nil 就好了,感谢 :smiling_face_with_three_hearts:

1 个赞