├── .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" --------------------------------------------------------------------------------