├── .github
└── workflows
│ ├── package.yml
│ └── stale.yml
├── .gitignore
├── README.md
├── Scripts
├── addzh-cn.ps1
└── sandbox-setup.cmd
├── Tencent.wsb
├── mkdir.bat
└── win10_init.ps1
/.github/workflows/package.yml:
--------------------------------------------------------------------------------
1 | name: Package repository
2 |
3 | on:
4 | push:
5 | tags:
6 | - 'v*'
7 |
8 | jobs:
9 | package:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/checkout@v3
13 | - name: Package repository
14 | run: |
15 | tar -cf package.tar.gz --exclude-vcs --exclude=.gitignore --exclude='.github' *
16 |
17 | - name: Create Release
18 | id: create_release
19 | uses: actions/create-release@main
20 | env:
21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22 | with:
23 | tag_name: ${{ github.ref }}
24 | release_name: ${{ github.ref }}
25 | draft: false
26 | prerelease: false
27 |
28 | - name: Upload Release Asset
29 | id: upload-release-asset
30 | uses: actions/upload-release-asset@main
31 | env:
32 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33 | with:
34 | upload_url: ${{ steps.create_release.outputs.upload_url }}
35 | asset_path: ./package.tar.gz
36 | asset_name: package.tar.gz
37 | asset_content_type: application/gzip
38 |
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
2 | #
3 | # You can adjust the behavior by modifying this file.
4 | # For more information, see:
5 | # https://github.com/actions/stale
6 | name: Mark stale issues and pull requests
7 |
8 | on:
9 | schedule:
10 | - cron: '27 17 * * *'
11 |
12 | jobs:
13 | stale:
14 |
15 | runs-on: ubuntu-latest
16 | permissions:
17 | issues: write
18 | pull-requests: write
19 |
20 | steps:
21 | - uses: actions/stale@v5
22 | with:
23 | repo-token: ${{ secrets.GITHUB_TOKEN }}
24 | stale-issue-message: 'Stale issue message'
25 | stale-pr-message: 'Stale pull request message'
26 | stale-issue-label: 'no-issue-activity'
27 | stale-pr-label: 'no-pr-activity'
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | App
2 | Data
3 | Desktop
4 | .idea
5 | Tencent.wsb.bak
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # tencent-sandbox
2 |
3 | tencent-sandbox 是使用 [Windows sandbox](https://learn.microsoft.com/zh-cn/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview) 为腾讯全家桶创建沙盒的配置
4 |
5 | ## 特性
6 |
7 | * **一键配置**: 使用 `mkdir.bat` 快速创建所需目录结构。
8 | * **灵活配置**: 支持自定义沙盒设置,如内存、音频输入等。
9 | * **数据持久化**: 关闭沙盒后,账号和数据依然保留。
10 |
11 | ## 兼容性
12 |
13 | 已在以下平台测试并确认正常使用:
14 |
15 | | 平台 | 说明 |
16 | |---|---|
17 | | 微信 | ✅ |
18 | | QQ | ✅ |
19 | | QQNT | ⚠️ 无法自动登录,无法记住密码 |
20 | | TIM | ✅ |
21 | | 企业微信 | ⚠️ 无法自动登录(检查设备ID),需每次重新登录 |
22 | | 腾讯会议 | ✅ |
23 | | 腾讯文档 | ✅ |
24 |
25 | **遇到其他兼容性问题?** 欢迎提交 Issue 反馈!
26 |
27 | ## 更多配置
28 |
29 | 请不要在issue里面询问**除腾讯全家桶之外的配置**
30 |
31 | * 更多配置示例可参考: [https://blog.kongwu.top/p/sandbox-configuration](https://blog.kongwu.top/p/sandbox-configuration)
32 | * 欢迎在博客评论区分享你的配置方案!
33 |
34 | ## 注意事项
35 |
36 | **家庭版**不支持沙盒
37 |
38 | 默认挂载系统 `SysWOW64` ,出现问题请使用[复制选项](#复制)
39 |
40 | ### **Windows 10 用户**
41 |
42 | 1. 进入你 clone/下载 的**项目目录**
43 | 2. 按键盘上的Win + R
44 | 3. 输入 powershell, 按回车
45 | 4. 输入 `PowerShell -ExecutionPolicy Bypass -File ".\win10_init.ps1"`。
46 |
47 | 不明白如何操作:
48 |
49 | 1. 用文本方式打开Tencent.wsb
50 | 2. 将**所有**例如`.\tencent-sandbox\xxxxxxx` 中的 `.\` 手动修改为你 clone/下载 的**项目目录**。
51 |
52 | ## 沙盒配置
53 |
54 | | 设置 | 默认值 | 可选值 | 修改方式 |
55 | |---|---|---|---|
56 | | 内存 | 2GB | 以 MB 为单位的数值 | `value` |
57 | | 音频输入 | 开启 | Enable/Disable/Default | `value` |
58 | | 剪贴板重定向 | 开启 | Enable/Disable/Default | `value` |
59 | | 视频输入 | 关闭 | Enable/Disable/Default | `value` |
60 |
61 | 其他配置参考[Windows沙盒配置](https://learn.microsoft.com/zh-cn/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file)官方文档
62 |
63 | ## 使用教程
64 |
65 | 1. **启用 Windows 沙盒**: 确保你的系统已启用 Windows 沙盒功能。
66 | 2. **获取项目**:
67 | * 克隆本项目: `git clone https://github.com/empty-233/tencent-sandbox.git`
68 | * 或前往 [Releases](https://github.com/empty-233/tencent-sandbox/releases) 页面下载最新版本。
69 |
70 | 3. **创建目录**: 运行 `mkdir.bat` 一键创建所需目录。
71 |
72 | 4. **安装软件**: 打开 **Tencent.wsb** ,在沙盒中安装所需的腾讯软件。
73 |
74 | 5. **固定快捷方式**: 将桌面快捷方式移动到任意位置,再移动回桌面,以防止快捷方式消失。
75 |
76 | 操作完成后就可以正常使用了,**关闭沙盒账号和数据都有所保留**
77 |
78 | ### SysWOW64 配置
79 |
80 | 默认**挂载系统SysWOW64**
81 |
82 | #### 挂载(默认)
83 |
84 | 修改 `C:\Windows\SysWOW64`
85 |
86 | #### 复制
87 |
88 | 新开一个**默认沙盒**,并正常安装所需软件
89 |
90 | 安装完成之后复制**沙盒内** `C:\Windows\SysWOW64` 到 `Data\SysWOW64`
91 |
92 | 修改 `C:\Windows\SysWOW64` 为 `.\Data\SysWOW64`
93 |
94 | ## 挂载路径
95 |
96 | 请查看 Tencent.wsb 中的 `MappedFolder` 配置项
97 |
98 | * qq保存的路径: `Data\Documents\Tencent\ (qqid) \FileRecv`
99 |
100 | * 微信保存的路径: `Data\Documents\WeChat\ (wxid) \FileStorage\File`
101 |
102 | * 微信测试版保存的路径: `Data\Documents\xwechat_files\ (wxid) \msg\file`
103 |
104 | * 其余的请查看 `Data\Documents`
105 |
--------------------------------------------------------------------------------
/Scripts/addzh-cn.ps1:
--------------------------------------------------------------------------------
1 | $LanguageList = Get-WinUserLanguageList
2 |
3 | $LanguageList.Add("zh-Hans-CN")
4 |
5 | Set-WinUserLanguageList $LanguageList -Force
--------------------------------------------------------------------------------
/Scripts/sandbox-setup.cmd:
--------------------------------------------------------------------------------
1 | powershell.exe -executionpolicy bypass -file C:\Scripts\addzh-cn.ps1
2 |
3 | C:\Program Files (x86)\Common Files\Tencent\QQProtect\Bin\QQProtect.exe
--------------------------------------------------------------------------------
/Tencent.wsb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | .\Desktop
6 | C:\Users\WDAGUtilityAccount\Desktop
7 | false
8 |
9 |
10 |
11 | .\App\WeChat
12 | C:\Program Files\Tencent\WeChat
13 | false
14 |
15 |
16 | .\App\Weixin
17 | C:\Program Files\Tencent\Weixin
18 | false
19 |
20 |
21 | .\App\QQ
22 | C:\Program Files (x86)\Tencent\QQ
23 | false
24 |
25 |
26 | .\App\TIM
27 | C:\Program Files (x86)\Tencent\TIM
28 | false
29 |
30 |
31 | .\App\QQNT
32 | C:\Program Files\Tencent\QQNT
33 | false
34 |
35 |
36 | .\App\WeMeet
37 | C:\Program Files\Tencent\WeMeet
38 | false
39 |
40 |
41 | .\App\TencentDocs
42 | C:\Program Files\TencentDocs
43 | false
44 |
45 |
46 | .\App\WXWork
47 | C:\Program Files (x86)\WXWork
48 | false
49 |
50 |
51 |
52 | .\Data\Roaming\WeChat
53 | C:\Users\WDAGUtilityAccount\AppData\Roaming\Tencent\WeChat
54 | false
55 |
56 |
57 | .\Data\Roaming\xwechat
58 | C:\Users\WDAGUtilityAccount\AppData\Roaming\Tencent\xwechat
59 | false
60 |
61 |
62 | .\Data\Roaming\Tencent
63 | C:\Users\WDAGUtilityAccount\AppData\Roaming\Tencent\Tencent
64 | false
65 |
66 |
67 | .\Data\Roaming\TencentDocs
68 | C:\Users\WDAGUtilityAccount\AppData\Roaming\TDAppDesktop
69 | false
70 |
71 |
72 | .\Data\Roaming\WeMeet
73 | C:\Users\WDAGUtilityAccount\AppData\Roaming\Tencent\WeMeet
74 | false
75 |
76 |
77 |
78 | .\Data\Documents\WeChat
79 | C:\Users\WDAGUtilityAccount\Documents\WeChat Files
80 | false
81 |
82 |
83 | .\Data\Documents\xwechat_files
84 | C:\Users\WDAGUtilityAccount\Documents\xwechat_files
85 | false
86 |
87 |
88 | .\Data\Documents\Tencent
89 | C:\Users\WDAGUtilityAccount\Documents\Tencent Files
90 | false
91 |
92 |
93 | .\Data\Documents\WXWork
94 | C:\Users\WDAGUtilityAccount\Documents\WXWork
95 | false
96 |
97 |
98 |
99 | .\Data\Common Files
100 | C:\Program Files (x86)\Common Files
101 | false
102 |
103 |
104 |
105 | .\Data\ProgramData\Tencent
106 | C:\ProgramData\Tencent
107 | false
108 |
109 |
110 |
111 | .\Scripts
112 | C:\Scripts
113 | true
114 |
115 |
116 |
117 | C:\Windows\SysWOW64
118 | C:\Windows\SysWOW64
119 | true
120 |
121 |
122 |
123 | Enable
124 |
125 | Disable
126 |
127 | 2048
128 |
129 |
130 | C:\Scripts\sandbox-setup.cmd
131 |
132 |
133 | Enable
134 |
135 |
--------------------------------------------------------------------------------
/mkdir.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | md "App\QQ"
3 | md "App\QQNT"
4 | md "App\TIM"
5 | md "App\WeChat"
6 | md "App\Weixin"
7 | md "App\WXWork"
8 | md "App\WeMeet"
9 | md "App\TencentDocs"
10 | md "Data\Common Files"
11 | md "Data\Documents\Tencent"
12 | md "Data\Documents\WeChat"
13 | md "Data\Documents\xwechat_files"
14 | md "Data\Documents\WXWork"
15 | md "Data\Roaming\Tencent"
16 | md "Data\Roaming\WeChat"
17 | md "Data\Roaming\xwechat"
18 | md "Data\Roaming\TencentDocs"
19 | md "Data\Roaming\WeMeet"
20 | md "Data\SysWOW64"
21 | md "Data\ProgramData\Tencent"
22 | md "Desktop"
23 | md "Scripts"
24 |
--------------------------------------------------------------------------------
/win10_init.ps1:
--------------------------------------------------------------------------------
1 | $file_path = "Tencent.wsb"
2 | $relative_dir_identifier = ".\"
3 |
4 | $file_content = Get-Content -Path $file_path -Encoding UTF8
5 |
6 | $relative_dir = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
7 | $relative_dir = $relative_dir + '\'
8 | Write-Host ("gathered relative dir: " + $relative_dir)
9 |
10 | $wsb_content = $file_content -replace [regex]::Escape($relative_dir_identifier), $relative_dir
11 |
12 | Copy-Item "Tencent.wsb" "Tencent.wsb.bak" -Force
13 | Write-Host "backup old wsb as Tencent.wsb.bak"
14 |
15 | $wsb_content | Out-File -FilePath "Tencent.wsb" -Encoding UTF8
16 | Write-Host "done"
--------------------------------------------------------------------------------