Fcitx5 Magisk 模块安装,词库文件夹不存在
qianbinbin opened this issue · 10 comments
文件夹不存在的问题
DICT_DIR=/storage/emulated/$1/Android/data/$FCITX_PACKAGENAME/files/data/pinyin/dictionaries
DICT_LOC=$DICT_DIR/CustomPinyinDictionary_Fcitx.dict
if [ ! -d "$DICT_DIR" ];then
ui_print "- 词库文件夹不存在!"
dictionaries
文件夹在 Fcitx5 安装时不会自动生成,这里可能少了个 mkdir
。
Shelter 多用户问题
系统是 Android 13(LineageOS 20.0),用户 10 是用 Shelter 创建的。
手动为主用户和用户 10 新建该文件夹后,主用户可以安装,但用户 10 仍然安装失败。
可能是某种权限问题,我在终端下以 root 权限也打不开这个目录。
/storage/emulated # ls
ls: .: Permission denied
个人不推荐自己手动创建目录,这可能会造成一些未知问题,这也是我没有添加 mkdir
命令的原因。
这个文件夹理应由 Fcitx 来创建,如果首次安装 Fcitx 后没有使用过相关功能,这个文件夹是不存在的,这是正常现象。
可以参考这里:
想要解决这个问题,首次安装 Fcitx 后先切换一次拼音输入法,进入词典菜单(可能不需要这一步),让应用生成目录后再安装模块即可。
你所说的多用户问题同理,也应该在 用户10 下进行一次上述操作。
你是按照 之前的方式 创建的空白文件吗?
你在 /data/adb/wuhgit/CustomPinyinDictionary/ 这个目录下创建一个文件名为 10 的空文件,然后再安装模块即可。
后面的模块改过这个路径了,新目录路径是 /data/adb/wuhgit/CustomPinyinDictionary/fcitx/
,在这个目录下创建文件名为 10 的空文件。
后面的模块改过这个路径了,新目录路径是
/data/adb/wuhgit/CustomPinyinDictionary/fcitx/
,在这个目录下创建文件名为 10 的空文件。
我就是按照这个路径创建的,否则脚本逻辑也不会走到文件夹不存在这里。
个人倾向于这是某种权限问题,因为以 root 权限也无法读取 storage/emulated
,root 权限的文件管理器也不行,用户之间似乎是高度隔离的。如果这个功能不好实现,那我还是手动复制吧。
刚试了一下 Shelter ,发现 Android 13 已经拿不到 工作资料
子用户的根目录权限了,你只能手动安装了。
明白了,谢谢。
试过自带的多用户以及通过 shelter 创建,都没办法拿到 storage/emulated/<UID>
的权限了,而 /data/user/<UID>/
却又可以,所以 Gboard 的模块还是可以继续多用户使用,但 Fcitx 的模块就没办法了。
是的,不过 Gboard 占用资源太高了,所以尝试换 Fcitx5。
问题应该解决了,CustomPinyinDictionary_Fcitx_Magisk_20230224.zip
我这边测试通过(Android 13 LineageOS 20.0 + Shelter 1.8),你试试,还有问题的话反馈一下。