Mullvad seems to have built-in bridge mode support only on PC. However he may still be able to use Mullvad smoothly by turning on WireGuard obfuscation (UDP over TCP, UoT) in app settings, which is available on both PC and mobile.
Things may be different under different network provider in China, but he thinks UoT will work at least for now.
Mainland China’s three major network providers has downgraded UDP support, so even if WireGuard works through GFW, he may encounter slow downloading rate with WireGuard since it’s UDP based. By using UoT, it fixes both.
If he needs a long stay in China, he suggests he keeps two or multiple preparations.
First if he can afford roaming data fee, he keeps a foreign phone card may help him browse the Internet, since his traffic would be sent back to the country.
Also, Cloudflare’s 1.1.1.1 is free to use, and may be accessible from Mainland China. He can download a copy as backup.
He may find (Chinese) people selling Shadowsocks servers, but buying from them may not be a good choice since the price varies and he doesn’t know who’s behind them.
So if he wants a Shadowsocks server, he’d suggest he starting his own: buy a VPS from AWS (Lightsail) or GCP or DigitalOcean or Hetzner (if he can apply for an Hetzner account), then download a shadowsocks-rust binary to his VPS, run it as a systemd service and it’s done. It’s not recommended to use auto-installing scripts, unless he is sure they won’t do anything suspicious.
To use shadowsocks, for now, on his PC, he can download Shadowsocks-Windows on GitHub to use a Shadowsocks server. For Mac and Linux, he’d just run a shadowsocks-rust binary locally. On iOS Shadowrocket is ideal but he needs to purchase one. sing-box is free, however it needs a configuration file so he may need to edit his own. On Android, there’s Shadowsocks-Android, NekoBox (download from GitHub but not from Google Play) and also sing-box.