시놀로지 도커 Redroid – Google Photos 무제한 백업 설정 가이드

image.png

 

스크린샷 2025-12-15 04.53.42.png

아직 불안정하긴 한데 가이드를 원하시는 분들이 계셔서 우선 작성을 해봅니다

가이드 글을 따라 하시기 전에

우선 이 가이드는 시놀로지 도커에서 동작하는 reroid를 이용해 구글 포토 무제한 백업을 구현합니다

문제는 시놀로지에는 안드로이드 도커인 reroid를 돌릴 때 필요한 바인더 리눅스 커널 모듈이 없기 때문에

직접 커널 모듈을 빌드 해줘야 합니다

 

시놀로지 툴체인을 이용해 빌드가 가능하지만 제가 사용하는 버전이

SA6400 7.2.2 U5 버전이기 때문에 (7.3.x 버전 툴체인은 공개가 안됐습니다)

해당 바인더 커널 모듈은 위와 같은 모델 같은 버전에서만 동작 합니다

 

그리고 정상적인 이용 방법이 아니기 때문에 계정 밴의 위험성이 있고

언제든 막힐 수 있는 방법임을 명심하시고 따라오시길 바랍니다

 

해당 작업은 아직 원클릭이나 패키지 형태로 작업이 끝나지 않았기 때문에

대부분 터미널에서 작업을 하게 됩니다

 

그렇다보니 스샷이 많지 않네요

 

자동화 설치나 패키지 버전은 미정입니다

그냥 방법을 찾으면 언젠가는 가능하지 않을까? 정도이니 기다리지 마시길 바랍니다

 

우선 해당 가이드 글의 방법은  

Synology NAS에서 Redroid (Android in Docker)를 실행하여 Google Photos 무제한 원본 화질 백업을 구현하는 방법입니다.

 

핵심 원리: 
– GPhotos Unlimited 모듈이 Pixel XL로 기기 스푸핑
– MicroG가 Google 인증 처리
– LSPosed + FakeGapps가 시그니처 스푸핑

 

도커 redroid 와 마이크로G 그리고 magisk G포토 언리미티드 모듈을 이용한 방법 입니다

remote-android/redroid-doc: redroid (Remote-Android) is a multi-arch, GPU enabled, Android in Cloud solution. Track issues / docs here

🧩[MODULE]🧩 GPhotos-Unlimited Without LSPosed/Zygisk | XDA Forums

Downloads · microg/GmsCore Wiki 

 

우선 필요한 파일들을 다운 받아야겠죠

SA6400 7.2.2 U5 바인더 모듈은 자료실에 올릴 예정이고요

 

https://svrforum.com/data/2927507

  

스크린샷 2025-12-15 05.41.23.png

리드로이드는 11이미지를 사용할 예정인데 일반 이미지가 아닌 Magisk 포함 버전의 이미지를 따로 빌드 해야 합니다

 

링크의 빌드 방법을 참고해서 직접 빌드 하시거나

sruinz/redroid:11.0.0-magisk

위 이미지를 사용하시면 될 겁니다

 

자 이제 바인더 모듈과 리드로이드 이미지 + magisk 는 준비가 됐고

 

magisk 에서 사용할 마이크로G 용 모듈과 오피셜 마이크로G 파일들이 필요하겠네요

 

 

스크린샷 2025-12-15 05.55.16.png

Downloads · microg/GmsCore Wiki

 

링크의 세 가지 파일을 전부 다운 해주세요

 

스크린샷 2025-12-15 05.56.41.png

0.3.4 버전을 다운 받아야 합니다

com.google.android.gms-240913008.apk 

com.android.vending-84022608.apk

GsfProxy.apk

 

이렇게 세 가지 파일을 다운 받으면 마이크로G 관련 파일은 전부 끝입니다

이 파일들은 나중에 터미널에서 adb를 이용해서 설치하거나

리드로이드 폴더에 직접 넣어서 설치하는 방법이 있겠네요

어차피 터미널 adb를 계속 써야하니 adb 방식이 편할 겁니다

폴더 안에 같이 보관 해주세요

 

이제 마이크로G를 실행하기 위한 마지스크 모듈을 받아야 합니다

 

 

스크린샷 2025-12-15 06.02.04.png

Releases · LSPosed/LSPosed

LSPosed-v1.9.2-7024-zygisk-release.zip

zygisk용 LSPosed 모듈과 

 

스크린샷 2025-12-15 06.03.53.png

스크린샷 2025-12-15 06.05.21.png

🧩[MODULE]🧩 GPhotos-Unlimited Without LSPosed/Zygisk | XDA Forums 

https://xdaforums.com/attachments/gphotos-unlimited-m-x86_64-mehedihjoy-zip.6148384/

Loading

가장 우측의 G포토 언리미티드 모듈을 다운 받으면 됩니다

 

스크린샷 2025-12-15 06.07.00.png

다운 받은 모듈은 나중에 리드로이드 실행 후 생성되는 저 폴더에 넣어주시면 됩니다

 

그 다음은 마이크로G를 제대로 실행하기 위한 모듈입니다

 

스크린샷 2025-12-15 06.14.39.png

Releases · LSPosed/CorePatch

core-patch-4.7.apk

코어 패치와 

 

 

스크린샷 2025-12-15 06.18.43.png

Releases · whew-inc/FakeGApps

app-release.apk

페이크GApps 모듈입니다

 

G포토 언리미티드 모듈은 이런 것들 없이 실행이 된다지만

마이크로G에는 필요해서 설치를 하는거죠

이것저것 조합들을 찾아보다가 그나마 가장 안정적인 조합을 찾은거라

뭐하나 빠져도 될 수도 있습니다만 한 두개 더 설치한다고 문제 생기는 거 아니니

직접 테스트 해보실 분 아니라면 위의 파일들을 전부 받아 주시면 될 거 같습니다

위의 apk 파일은 마이크로G 파일들 처럼 adb를 이용해 설치 할 겁니다 

 

지금 링크들을 보시면서 느끼셨겠지만 대부분 짧으면 1년 길면 2~3년 전에 업데이트가 멈췄습니다

유지보수가 안되기 때문에 언제 막힐지 모르는거죠…

 

우선 필수 파일들은 이제 전부 다운이 됐습니다

 

스크린샷 2025-12-15 06.11.16.png

스크린샷 2025-12-15 06.09.34.png

Aurora

Gapps가 없이 마이크로G를 통해 구글 로그인을 하기 때문에

구글 플레이서비스나 스토어가 없습니다

필요하시면 오로라 스토어를 설치하시면 되겠습니다

 

물론 도커 리드로이드 성능이 별로라 뭐 따로 돌릴게 없긴 합니다만

유틸 같은 거라도 필요한 게 있다면 편하게 다운 및 설치 가능하더라고요

 

 

스크린샷 2025-12-15 06.13.16.png

다운 받은 파일들을 정리하면 이런식이 됩니다 

 

이제 설치를 진행 해야겠네요

우선 시놀로지 커널 모듈 설치를 해줘야 합니다

 

https://svrforum.com/data/2927507

 

Redroid 실행을 위해 binder 커널 모듈이 필요한데요

자료실에서 다운받은 SA6400 7.2.2 U5 전용 모듈을 설치 할 겁니다

 

# SSH 접속
ssh root@<NAS_IP>

# 모듈 폴더 생성
mkdir -p /volume1/docker/redroid/modules
cd /volume1/docker/redroid/modules

# binder 모듈 복사 
# scp로 로컬에서 복사하거나 파일 스테이션을 통해 복사

# 모듈 로드
insmod /volume1/docker/redroid/modules/binder_linux.ko devices="binder,hwbinder,vndbinder"

# 확인
ls -la /dev/*binder*
# 출력: /dev/binder, /dev/hwbinder, /dev/vndbinder

# 권한 설정
chmod 666 /dev/binder /dev/hwbinder /dev/vndbinder

다운 받은 파일을 위에서 생성한 폴더에 넣어주시고 명령어를 실행 해주세요

이 부분은 나중에 패키지 형태로 제작을 하거나 좀 더 쉬운 방식으로 수정을 해야할 거 같습니다

수동으로 모듈 로드를 하기 때문에 시놀 재부팅 때마다 다시 로드를 해줘야 하는데요

 

# 스크립트 생성
cat > /usr/local/etc/rc.d/binder.sh << 'EOF'
#!/bin/bash

MODULES_DIR="/volume1/docker/redroid/modules"

case "$1" in
    start)
        echo "Loading binder modules..."
        insmod $MODULES_DIR/binder_linux.ko devices="binder,hwbinder,vndbinder"
        chmod 666 /dev/binder /dev/hwbinder /dev/vndbinder
        echo "Binder modules loaded successfully"
        ;;
    stop)
        echo "Unloading binder modules..."
        rmmod binder_linux 2>/dev/null
        echo "Binder modules unloaded"
        ;;
    status)
        if lsmod | grep -q binder_linux; then
            echo "Binder module is loaded"
            ls -la /dev/*binder*
        else
            echo "Binder module is NOT loaded"
        fi
        ;;
    *)
        echo "Usage: $0 {start|stop|status}"
        exit 1
        ;;
esac
EOF

# 실행 권한 부여
chmod +x /usr/local/etc/rc.d/binder.sh

# 수동 테스트
/usr/local/etc/rc.d/binder.sh start
/usr/local/etc/rc.d/binder.sh status

스크립트를 생성해서 부팅 시 자동 로드 하는 방법이 있고요

 

1. DSM → **제어판****작업 스케줄러**
2. **생성****트리거된 작업****사용자 정의 스크립트**
3. 이벤트: **부트업**
4. 스크립트:
   ```bash
   insmod /volume1/docker/redroid/modules/binder_linux.ko devices="binder,hwbinder,vndbinder"
   chmod 666 /dev/binder /dev/hwbinder /dev/vndbinder
   ```

작업 스케쥴러에 저장하는 방법이 있습니다

 

위 방법들은 모든 테스트가 완료 된 후에 설정 하세요

안될 수도 있으니까요….

 

 이제 커널 모듈은 설치가 됐으니 컨테이너를 생성 해야 합니다

 

# /volume1/docker/redroid/docker-compose.yml
version: "3"
services:
  redroid:
    image: sruinz/redroid:11.0.0-magisk
    container_name: redroid
    privileged: true
    ports:
      - "5578:5555"   # ADB
      - "5912:5900"   # VNC
    volumes:
      - /volume1/docker/redroid/data:/data
    devices:
      - /dev/dri:/dev/dri
    environment:
      - TZ=Asia/Seoul
    command:
      - androidboot.use_memfd=true
      - androidboot.redroid_gpu_mode=guest # guest: use software rendering; host: use GPU accelerated rendering; auto: auto detect
      - androidboot.redroid_width=1080
      - androidboot.redroid_height=1920
      - androidboot.redroid_fps=30
      - androidboot.redroid_dpi=320
      - ro.rfb.port=5900
      - ro.adb.secure=0
      - service.adb.tcp.port=5555
    restart: unless-stopped

컨테이너 매니저에서 프로젝트 생성 하시고

위의 컴포즈 내용으로 생성 해주시면 됩니다

좌측 포트 5578과 5912는 중복 안되는 포트로 수정 가능합니다

해상도도 편하신대로 수정 하시고요

adb 포트는 잘 동작 하는데 vnc는 테스트 못해봤습니다

 

스크린샷 2025-12-15 06.37.51.png

컨테이너가 실행이 되면 로그에는 별다른 내용이 표시가 안됩니다

 

# 기존 연결 해제
adb disconnect

# NAS에 연결
adb connect <NAS_IP>:5578

# 확인
adb devices

맥이나 윈도우에서 터미널을 실행 하시고 위의 명령을 실행 해주세요

 

image.png

제대로 실행이 됐다면 이런 식으로 연결이 됩니다

가끔 재빌드 후 연결이 안되는 경우 이 단계를 다시 진행 해주시면 됩니다

 스크린샷 2025-12-15 06.49.09.png

docker exec redroid getprop service.adb.tcp.port

가끔 adb 접속이 안되고 위의 명령어를 나스 SSH에서 확인 했을 때 

스샷처럼 컨테이너 내부 포트 5555가 안나오고 공란으로 나올 때가 있습니다

docker exec redroid setprop service.adb.tcp.port 5555
docker exec redroid stop adbd
docker exec redroid start adbd

그럴 경우 위 명령어를 통해 컨테이너 내부 포트를 재설정 해주세요

컨테이너 내부 포트는 변경이 안되기 때문에 5555 고정 입니다

 

adb 연결이 됐다면 이제 안드로이드 화면을 봐야겠죠

 

#맥이나 윈도우 터미널에서 실행
scrcpy -s 나스아이피:5578 --no-audio

 해당 명령어를 데스크탑 터미널에서 실행 하시면 

 

 

스크린샷 2025-12-15 06.55.06.png

이런 화면이 보입니다

 

만약 명령어가 없다고 뜬다면 관련 명령어들을 터미널에 설치 해줘야 합니다 

이 부분은 scrcpy 설치로 검색 해보시면 많이 나올 겁니다

 

 

스크린샷 2025-12-15 06.57.19.png

화면을 위로 드래그 하시면 설치된 앱들이 보일텐데

저 같은 경우는 설정이 끝난 상태라 마이크로G와 포토 앱이 보입니다만

아마 Magisk 하나만 있을 겁니다

 

스크린샷 2025-12-15 06.58.30.png

Magisk 를 실행 해보시면 뭔가 설치 확인한다고 화면이 뜰 겁니다

설치 하시고 리부팅 되면 다시 scrcpy를 실행해서 접속 후 마지스크 다시 실행 하시면

위의 스샷 같은 화면이 보일 겁니다

아마 영어로 나올텐데 한글 설정 가능하니 필요하시면 설정에서 수정 하시면 됩니다

 

마지스크와 앱이 제대로 설치 됐는지 확인을 하시고 

 

스크린샷 2025-12-15 07.00.44.png

우측 하단 모듈을 선택 하시면 이런 화면이 뜹니다

역시 처음이라면 텅 비어있을텐데요

 

저장소에서 설치 누르시고 

 

스크린샷 2025-12-15 07.01.53.png

다운로드 폴더로 가시면 파일 스테이션을 통해 업로드 한 모듈이 보일 겁니다

하나 설치 하면 리붓 되니 두 번 반복 해주시면 됩니다

  

G포토 언리미티드가 설치되면 자동으로 구글 포토 앱이 설치가 되고

 

스크린샷 2025-12-15 07.11.01.png

LSPosed 모듈이 설치가 되면 상단바를 내렸을 대 이렇게 표시가 됩니다

 

LSPosed를 실행하기 전에 마이크로G를 설치 해줘야겠죠

 

# MicroG 설치
adb -s <NAS_IP>:5578 install ~/Downloads/com.google.android.gms-x86_64.apk

# FakeStore 설치
adb -s <NAS_IP>:5578 install ~/Downloads/com.android.vending.apk

# GsfProxy 설치
adb -s <NAS_IP>:5578 install ~/Downloads/GsfProxy.apk

# core-patch 설치
adb -s <NAS_IP>:5578 install ~/Downloads/core-patch-4.7.apk

# fake-gapps 설치
adb -s <NAS_IP>:5578 install ~/Downloads/fake-gapps-6.6.apk

# 재부팅
adb -s <NAS_IP>:5578 reboot

adb 에서 위에서 다운 받았던 파일명을 일치시킨 명령을 실행 하시면 설치가 됩니다

위의  명령어는 맥 기준 다운로드 폴더에 해당 파일들을 다운 받은 경우 입니다

 

그냥 파일 스테이션으로 다운로드 폴더에 다 업로드 하시고 scrcpy 에서 파일 앱으로 설치 하셔도 됩니다

편한 방법으로 설치하시고 리부팅 해주세요

  

이제 LSPosed를 실행 해줍니다

 

스크린샷 2025-12-15 07.13.34.png

실행을 하면 이런 화면이 뜨는데요

 

 

스크린샷 2025-12-15 07.14.08.png

하단에 모듈 두개가 설치가 됐다면 성공 입니다

각각의 모듈을 선택해서 안에 표시되는 앱들을 체크 해주세요

 

 

스크린샷 2025-12-15 07.15.15.png

 

스크린샷 2025-12-15 07.15.41.png

포토앱은 선택하지 마세요

 

다 완료가 됐다면 이제 거의 끝났습니다

 

스크린샷 2025-12-15 07.49.08.png

마이크로G를 실행 하시면 이런 화면이 뜨는데

셀프 체크를 눌러 줍니다

 

스크린샷 2025-12-15 07.49.56.png

모두 정상적으로 체크가 돼있다면 성공 입니다

 

스크린샷 2025-12-15 07.51.01.png

아래의 퍼미션 부분은 저는 이렇게 체크 했습니다 로케이션 백그라운드만 앱 실행시에만 동작 체크 했더니

저기에만 체크 해제 돼있더라고요 나머지는 전부 체크 했습니다

 

image.png

구글 계정 메뉴로 가서 계정 추가가 제대로 된다면 마이크로G는 끝입니다

계정만 추가하고 다른 옵션은 기본 옵션 그대로 입니다

 

image.png

이제 포토 앱을 실행했을 때 마이크로G를 통해 로그인이 성공했다면 이런 화면이 표시 됩니다

백업 설정을 하시고 테스트를 해보신 후 용량이 늘어나나 확인을 해보세요

온라인 구글 포토에서 확인을 해보시면 됩니다

 

스크린샷 2025-12-15 07.19.35.png

우측 상단 프로필을 눌렀을 때 계정 스토리지 부분에 픽셀 무제한 이야기가 있다면 문제없이 동작 할 겁니다

 

자 시놀로지 도커에서 무제한 백업 설정이 끝났습니다

이제 파일 스테이션에서 사진 넣고 이런저런 방법으로 관리하시면 될 거 같습니다

파일 스테이션에서 사진을 넣어도 실시간으로 구글 포토에서 인식이 안되니

컨테이너를 자동으로 껐다 켰다 하는 방법으로 설정을 하시거나 수동으로 백업 하시면 될 거 같네요

 

adb -s 나스IP:5578 shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/

참고로 파일스테이션을 통해 이미지를 업로드 후 터미널에서 위 명령어를 실행하면

미디어 파일 갱신이 되고 구글 포토 백업 설정이 돼있다면 자동으로 새로운 파일에 대한 백업이 진행 됩니다

온라인 구글 포토를 통해 확인이 가능하니 한 번 설정 후 scrcpy를 실행 할 필요도 없죠 

 

처음에도 이야기 했지만 정상적인 방법이 아니기 때문에 계정 밴의 위험이 있고

언제 막힐지 모릅니다

 

새로 계정을 생성해서 시도하시고

백업한 사진들은 구글 포토를 신뢰하지 마시고 이중 백업 하세요

 

가이드대로 진행을 해도 안되는 경우가 있을 수 있습니다

아직 테스트 단계라 저도 길게 써본게 아니기 때문에 동작을 보장 못하겠네요

 

천천히 써보면서 테스트 해보고 어떻게 더 쉽게 설치 할 수 있을지도 고민을 좀 해봐야겠습니다

 

긴 글 읽으시느라 고생 하셨습니다

시도하시는 분들 문제없이 성공 하시길 바랍니다

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다