Package Details: wechat-universal-bwrap 4.0.1.7-1

Git Clone URL: https://aur.archlinux.org/wechat-universal-bwrap.git (read-only, click to copy)
Package Base: wechat-universal-bwrap
Description: WeChat (Universal) with bwrap sandbox
Upstream URL: https://linux.weixin.qq.com/
Licenses: GPLv3, proprietary
Conflicts: wechat-universal
Provides: wechat-universal
Replaces: wechat-beta, wechat-beta-bwrap
Submitter: 7Ji
Maintainer: 7Ji (devome, leaeasy)
Last Packager: 7Ji
Votes: 107
Popularity: 7.32
First Submitted: 2024-03-14 03:09 (UTC)
Last Updated: 2024-12-15 06:49 (UTC)

Pinned Comments

7Ji commented on 2024-03-14 06:21 (UTC) (edited on 2024-12-08 08:59 (UTC) by 7Ji)

本软件包在Github上亦有仓库: https://github.com/7Ji-PKGBUILDs/wechat-universal-bwrap/ (仓库未启用issues,有问题请直接在此页面提出)

各位如有改进意见,欢迎在Github仓库页提交PR :)

抓取新版本的脚本和PKGBUILD在同一层。执行python fetch_uos_wechat_release.py获取UOS仓库内的重打包版本,执行./fetch_tencent_wechat_release.sh获取腾讯官方的版本。如果发现软件过期,请善用本界面的标记过期功能。:)


默认配置下,只有~/Documents/WeChat_Data/home 作为容器内的~,其他宿主文件和文件夹均不暴露在容器内

可以编写~/.config/wechat-universal/binds.list来设置更多的被暴露到容器内的文件/文件夹,每行一个路径,绝对路径或相对于~的相对路径


要将微信文件的主要路径修改至 ~/Documents/WeChat_Data 外的其他路径,请设置环境变量 WECHAT_DATA_DIR,同理为绝对路径或相对于~的相对路径

Latest Comments

« First ‹ Previous 1 .. 24 25 26 27 28 29 30 31 32 33 34 35 Next › Last »

XDwanj commented on 2024-03-12 10:15 (UTC) (edited on 2024-03-12 10:21 (UTC) by XDwanj)

感谢 @7Ji 的及时更新,但思路貌似反了。

由于是沙盒,所以在微信眼里,他要打开的是 $HOME/xwechat_files/xxxx.png 文件,于是调用 flatpak-xdg-utils/xdg-open 并传入该路径,但是 flatpak-xdg-utils/xdg-open 是在沙箱外打开文件,于是在 $HOME 下找 xwechat_files 文件夹,由于在 $HOMExwechat_files 并不存在,于是我们提议用软链接,但这里貌似并没有解决这个问题 ;)

我想普通的 xdg-open 并没有穿过沙箱,直接调用,所以才能打开,但是 flatpak-xdg-utils/xdg-open 原本就是为 flatpak 程序调用沙箱外的程序用的,所以会脱离沙箱环境。

在这里脱离沙箱并不是坏事,如果调用程序没法读取沙箱外的应用配置,会在样式和功能上大打折扣。

7Ji commented on 2024-03-12 10:02 (UTC) (edited on 2024-03-14 03:26 (UTC) by 7Ji)

本软件包在Github上亦有仓库: https://github.com/7Ji-PKGBUILDs/wechat-universal-bwrap/ (仓库未启用issues,有问题请直接在此页面提出)

各位如有改进意见,欢迎在Github仓库页提交PR :)

7Ji commented on 2024-03-12 09:59 (UTC)

谢谢诸位使用软链接解决在宿主打开文件的建议,考虑到bwrap是为了避免污染宿主环境,链接到~/xwechat_files的方式我觉得有些不雅。

我提交的方案是,在Wechat_Data下额外创建了home来bind到容器home,再把Wechat_Data/xwechat_files bind到它本身,然后创建Wechat_Data/home/xwechat_files链接指向前者,这样的话就能把所有的文件、链接等限制在Wechat_Data下。

经过测试,flatpak-xdg-utils/xdg-open打开外部文件和链接的体验更好,已经加到了optdepends

chestNut_Lsj commented on 2024-03-12 09:53 (UTC)

@XDwanj 感谢🙏我忙完最近的事情就去折腾一下试试。

不过我最近只是轻度使用,能够接收消息就行,发送单个文件就复制到wechat data目录下,等待进一步完善吧

XDwanj commented on 2024-03-12 09:13 (UTC) (edited on 2024-03-12 09:17 (UTC) by XDwanj)

@chestNut_Lsj

我尝试把 /usr/share/fonts 目录引入沙盒,但是 emoji 一如既往无法显示,理论上这是字体问题。但 wechat 貌似不读取 /usr/share/fonts 里的字体文件,暂时无解。

至于发送文件不方便,当前沙盒只暴露了 $HOME/Documents/WeChat_Data 目录,如果能够暴露 $HOME/Downloads 并设置 $HOME 的软链接。

ln -s $(xdg-user-dir DOCUMENTS)/WeChat_Data/xwechat_files $HOME/xwechat_files

就可以做到下载文件夹的拖拽发送文件。

XDwanj commented on 2024-03-12 09:03 (UTC) (edited on 2024-03-12 09:18 (UTC) by XDwanj)

@leaeasy

我想,可以考虑将 $(xdg-user-dir DOWNLOAD) 目录绑定沙盒中,方便文件另存为和将下载目录下的文件拖拽至窗口。

tinkSmely commented on 2024-03-12 08:45 (UTC)

gnome下当前版本使用耳机进行微信语音对方会有电流声,这个问题还有其他人出现吗?

chestNut_Lsj commented on 2024-03-12 08:15 (UTC)

arch+kde6+wayland+fcitx5,目前使用该包体验不错,大多数功能都能正常使用。

就是有两个问题,一个是emoji表情没法正确显示,一个是发送文件不方便。我对bwrap的了解不够多,不知道是因为bwrap虚拟机的问题,还是上游软件没实现这个功能。

但是为维护者点赞,有你这样积极的archer是我们用户和社区的荣幸😘

XDwanj commented on 2024-03-12 08:13 (UTC) (edited on 2024-03-12 08:29 (UTC) by XDwanj)

@MoetaYuko

你说的这两个解决方案,我尝试了一遍。

我添加了 flatpak-xdg-utils 依赖,并修改了 wechat.sh 中的 xdg-open 的路径,也软链接了路径,目前打开文件和打开链接完美工作。

虽然你提到了设置软链接方式,但貌似并不满意,对此我也很认同,我有考虑看能不能解决,但找寻 bwrap 类似包的实现,都没有提到这个。

我目前对快捷方式解决方案很满意。

PKGBUILD

...
- depends=('nss' 'xdg-utils' 'libxss' 'libnotify' 'bubblewrap'
+ depends=('flatpak-xdg-utils' 'nss' 'xdg-utils' 'libxss' 'libnotify' 'bubblewrap'
    'xdg-user-dirs' 'xdg-desktop-portal' 'openssl-1.1' 'lsb-release')
source=(                                                                         
    wechat.sh
    wechat-beta.desktop
    wechat-beta.png
    license.tar.gz
)
...

wechat.sh

...

+ if [ ! -e "$HOME/xwechat_files" ]; then
+     ln -s $(xdg-user-dir DOCUMENTS)/WeChat_Data/xwechat_files $HOME/xwechat_files
+ fi

exec bwrap \
    --dev-bind / / \
    --bind "${WECHAT_HOME_DIR}" "${HOME}" \
    --ro-bind-try "${HOME}/.fontconfig"{,} \
    --ro-bind-try "${HOME}/.fonts"{,} \
    --ro-bind-try "${HOME}/.config/fontconfig"{,} \
    --ro-bind-try "${HOME}/.local/share/fonts"{,} \
    --ro-bind {/usr/share/wechat-uos,}/var/ \
    --ro-bind {/usr/share/wechat-uos,}/etc/os-release \
    --ro-bind {/usr/share/wechat-uos,}/etc/lsb-release \
-    --ro-bind-try /usr/lib/snapd-xdg-open/xdg-open /usr/bin/xdg-open \
+    --ro-bind-try /usr/lib/flatpak-xdg-utils/xdg-open /usr/bin/xdg-open \
    ${BWRAP_ENV_APPEND} \
    /opt/wechat-beta/wechat $@
...

moetayuko commented on 2024-03-12 06:52 (UTC) (edited on 2024-03-12 06:54 (UTC) by moetayuko)

关于双击打开文件和右键在文件夹中打开没反应的问题找到了解决方案:

  1. 将目前使用的 /usr/lib/snapd-xdg-open/xdg-open 替换为 /usr/lib/flatpak-xdg-utils/xdg-open。这是因为 snapd-xdg-open 只支持 http, https 和 mailto 协议:https://github.com/snapcore/snapd-xdg-open/blob/master/src/snapd-xdg-open.c#L67。由于 flatpak-xdg-utils 是官方打包的,所以不存在引入 aur 依赖的问题
  2. 容器内外数据文件夹路径需要相同。目前是直接把 ~/文档/WeChat_Data 作为容器内的 HOME,导致容器内存放文件的路径 ~/xwechat_files/ 与容器外 ~/文档/WeChat_Data/xwechat_files/ 不一致,flatpak-xdg-open 似乎并不能处理这种映射关系。wechat-linux-bwrap 使用了一个比较 trivial 的 workaround:https://aur.archlinux.org/cgit/aur.git/tree/wechat.sh?h=wechat-linux-bwrap#n75,直接在容器外面创建 ~/xwechat_files -> ~/文档/WeChat_Data/xwechat_files/ 的软链接。不过我觉得如果有办法在 bwrap 里面处理会更好一些