#!/system/bin/sh
cd /data/local/tmp/android
export CLASSPATH=/data/local/tmp/android/scrcpy-server.jar
echo "Stopping existing services..."
pkill -f webrtc-signaling
pkill -f cloudphone-agent
pkill -f scrcpy.Server
echo "Starting Signaling Server..."
chmod +x webrtc-signaling
nohup ./webrtc-signaling -port 8443 -assets ./assets/v1 > signaling.log 2>&1 &
sleep 2
echo "Starting Agent..."
chmod +x cloudphone-agent
setsid nohup ./cloudphone-agent -id local-android -signaling ws://x.x.x.x:8443 -external-addr “x.x.x.x“ -webrtc-port 50000 -jar ./scrcpy-server.jar > agent.log 2>&1 &
IP=$(ip route get 1.1.1.1 2>/dev/null | awk '{for(i=1;i<=NF;i++) if($i=="src") print $(i+1)}')
if [ -z "$IP" ]; then
IP=$(ifconfig wlan0 2>/dev/null | grep 'inet ' | awk '{print $2}' | sed 's/addr://')
fi
if [ -z "$IP" ]; then
IP="<Android-IP>"
fi
echo "Services started. Connect via http://$IP:8443"
2026/05/14 19:17:00 CloudPhone Fat Agent V4.0 starting (IPv4+IPv6 Dual-Stack Mode)...
2026/05/14 19:17:00 [Agent] External IPs for WebRTC: [“x.x.x.x“]
2026/05/14 19:17:00 Connecting to ws://x.x.x.x:8443/register_agent
2026/05/14 19:17:00 [Agent] Snapshot ticker starting (10s interval)...
2026/05/14 19:17:04 [Agent] Starting scrcpy-server...
2026/05/14 19:17:04 [WebRTC] Successfully bound UDP4 Mux to port 50000
2026/05/14 19:17:04 [WebRTC] Setting NAT1To1IPs: [“x.x.x.x“] for client 1
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x3cf420]
goroutine 69 [running]:
main.(*Agent).handleWebRTCSignaling(0x40001b6848, 0x400029e0c0)
/Volumes/m2/code/cloudphone/android-agentd/cloudphone-agent/main.go:1076 +0x610
created by main.(*Agent).connectSignaling in goroutine 36
/Volumes/m2/code/cloudphone/android-agentd/cloudphone-agent/main.go:1129 +0x6e8
2026/05/14 19:16:58 Signaling Server starting on :8443...
2026/05/14 19:17:00 [Agent] Fat Device local-android registered
2026/05/14 19:17:00 [Signaling] Broadcasted device list update: [local-android]
2026/05/14 19:17:04 WebClient connected to device local-android (Fat: true)
2026/05/14 19:17:04 [DEBUG] To Device/Agent local-android: {"client_id":1,"command":null,"device_id":"local-android","message_type":"forward","payload":{"scrcpy_options":{"bitrate":4000000,"bwe":true,"debug":false,"max_bitrate":20000000,"max_fps":0,"max_size":0,"min_bitrate":8000000},"type":"request-offer"},"request_id":null}
2026/05/14 19:17:04 [Agent] Fat Device local-android offline
2026/05/14 19:17:04 [Signaling] Broadcasted device list update: []
setup.sh部分
agent.log
signaling.log