본문 바로가기
SW 개발/Android

Android 스마폰을 PC 화면으로 미러링: Mirroid

by Kibua20 2021. 2. 1.

Mirroid 악성 코드 주의

Mirroid windows용 Version 1.6.0.5 설치 파일 중 하나(MirroidUnistall.exe)에서 악성 코드인 트로이목마가 검출되었습니다. V3와 Window defender로는 검출되지 않고, 알약(다운로드 링크)으로 검출됩니다.  해당 파일의 악성 코드 진성여부와, 악성코드로 감염된 파일로 실수로 배포한 것인지 의도적으로 배포한 것인지는 알 수 없습니다. 악성 코드에 의해서 피해가 없도록 다운로드 시 주의 부탁드립니다.  알약으로 치료는 되지만 혹시 몰라 Windows OS를 다시 설치하였습니다.  Mirroid 카페의 (cafe.naver.com/mirroid)에서 바이러스 공지 내용 참고하세요. 

 

Mirroid 악성 코드 (트로이 목마 검출)

 

Mirroid 바이러스 감지 관련 공지 (출처: Mirroid 네이버 카페)

 

Mirroid 소개

안드로이드 스마트 폰을 PC 화면으로 출력하고 마우스로 원격 제어할 수 있는 미러링 프로그램인 Mirroid 소개합니다. Mirroid의 홈페이지에서 소개하고 있는 주요 특징은 아래와 같이 4가지 항목으로 요약할 수 있습니다.  오랜 기간은 아니지만 3~4일간 집중적으로 사용해본 경험과 의견을 추가하여 포스팅을 작성하였습니다.

 

  • 가벼운 미러링(부드러운 사용감):  PC에 Mirrooid를 설치하고 스마트 폰을 연결하면 자동으로 안드로이드 앱을 자동으로 설치하며  별도의 루팅도 필요 없습니다.  USB 또는 WiFi 연결 후에는 스마트 폰-PC 간 화면 delay나 latency가 거의 없어 '실시간' 제어가 가능합니다. 정확한 측정은 어렵지만 체감 상 화면 지연 시간은 50ms 이내로 느껴지며  PC 안에서 작은 안드로이드 스마트 폰을 사용하는 느낌입니다. 
  • 마우스와 키보드 컨트롤:  기존의 미러링 프로그램 들이 유니코드 처리와 입력기 구현이 어려워 한글 입력이 잘 안 되는 경우가 많습니다. Mirroid는 이러한 한글 입력기의 문제점들이 많이 개선된 것 같습니다. 또한 PC에서 Mirroid화면 위에 마우스만 올려 놓으면 자동으로 스마트 폰이 Display On되고 잠금 화면도 풀 수 있어 굳이 스마트 폰을 만지지 않고 PC에서 스마트 폰 제어가 가능합니다.
  • 끊김이 없고 완벽한 호환성:  Mirroid는 Google SDK에 포함된 ADB (Anroid Debug Bridge)를 기반으로 하고 PC와 안드로이드 폰과 통신을 하고 있습니다.  모바일 기기별 ADB 설정과 호환성에 어려움을 겪는 경우가 많습니다. Mirroid는 국내 삼성, LG 단말뿐 아니라 샤오미(MI), Huawei 등 많은 제조사 단말과 연결을 위한 가이드를 제공합니다.  실제 LG V30과 연결 테스트를 진행해 본 결과 호환성 문제없이 잘 동작합니다.WiFi 화면 미러링은 비 전공 개발자가 adb  연결을 설정하기에는 다소 어려움이 있으나, Mirroid에서는 가이드에 따라서 최초 한 번만 연결을 설정하면 이후에는 보다 쉽게 사용할 수 있습니다. 
  • 고 퀄리터 화질:  제가 테스트한 LG V30 단말은 QHD의 고해상도 단말입니다.  QHD 단말 화면을 그대로 PC 화면에 미러링하고 고해상도 유튜브도 화질의 열화 없이 미러링을 잘하고 있습니다.  Mirroid 설정 메뉴에서는  Bitrate, 해상도, FPS를 조정할 수 있습니다.

Mirroid 홈 페이지에 소개된 주요 기능

 

1. Mirroid  활용 방안 

Mirroid 아래와 같이 다양한 경우에 활용할 수 있습니다.  링크에도 많은 User case가 설명되어 있으니 참고하세요.  

 

  • 안드로이드 스마트 폰 화면을 PC에 출력:  모바일에 유튜브 영상을 PC 화면으로 시청하는 경우, 회사 보고 자리에서 프로젝터에 스마트 폰을 시연하는 경우(스마트 폰 - PC - 프로젝트 연결),  스마트 폰의 원격 수업용 Zoom이나 화상 회의(Google Meet 또는 WebEx)를 PC의 큰 화면에서 보는 경우에 활용할 수 있습니다. 
  • 모바일 메신저 또는 SNS를 PC에서 사용: 회사 보안 정책으로 PC의 카카오톡이나 SNS 설치가 막혀 있는 경우 모바일에 설치한 카카오톡을 PC에서 사용할 수 있습니다. 다른 예로 PC 방처럼 공용 PC에서 개인 계정으로 로그인을 원하지 않는 경우 모바일 메신저와 SNS를 PC에서 원격으로 편리하게 사용할 수 있습니다.  
  • 안드로이드 스마트 폰 원격 디버깅 (USB, WiFi 연결 가능):  Android 개발자가 많이 활용할 수 있을 것 같습니다. 같은 PC 화면에서 스마트 폰 화면과 소스 코드를 같이 비교할 수 도 있습니다. 
  • 스마트 폰 화면을 녹화 저장 (e.g. 게임 녹화), 화면 캡쳐 (은행 앱처럼 FLAG_SECURE 설정된 화면도 캡처):  스마트 폰을 녹화하고 싶은 경우 water mark 없이 녹화가 가능합니다. 최근 코로나 여파로 선생님께서 원격 수업용으로 학습 자료를 만들 때 스마트 폰의 녹화 기능은 매우 유용합니다. 

 

2. Mirroid  설치 및 연결 가이드

2.1. ADB 동작 확인

Mirroid동작을 위해서는 ADB가 동작해야 하고,  Mirroid 설치 파일에는 ADB 동작을 위한 (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) 파일이 설치 파일에 포함되어 있습니다.  명령 프롬프트에서 Mirriod 설치 폴더로 이동해서 ADB가 정상 동작여부와 이미 설치된 adb와 충돌이 없는지 확인이 필요합니다. 만일 ADB의 정상 동작 여부를 확인하는 방법은 ① PC와 스마트 폰을 USB로 연결한 상태에서 ② 윈도우에서 Window +R Key에서 'cmd' 명령어 실행하여 명령 프롬프트를 띄우고 ③ $ adb devices를 확인해 봅니다. 

 

만일 아래와 같은 연결된 Device가 검색이 된다면 정상 설치되어 있는 것이고 그렇지 않다면 ADB 연결을 위한 설정을 해야 합니다.  자세한 설정 가이드는 별도의 포스팅을 참고해주시고, 각 단계를  요약하면 다음과 같습니다. 

  1. 스마프 폰 제조사 USB 드라이버를 설치 (각 제조사 홈페이지에서 USB 통합 Driver를 제공함, 링크 삼성 통합드라이버, LG USB Driver) (필수)
  2. PC에서 ADB Tool 다운로드:  최신 버전 Android SdK platform tool 다운로드 (설치 링크) (생략 시 Mirroid 제공 adb 활용)
  3. PC 환경 변수에 ADB 설치 Path 추가 (생량 시 Mirroid 제공 adb 사용)
  4. 스마트 폰에서 'USB 디버깅' 연결 활성화 (필수)
  5. 스마트 폰과 PC 연결 - USB 디버깅 허용 (필수)

ADB 설치 확인 방법

 

USB 연결 상태에서 adb devices 결과에 스마트 폰 검색이 되지 않는 경우

adb가 정상적으로 설치한 상태에서 $ adb devices에서 단말 List가 보이지 않는 경우 핸드폰 제조사 USB 드라이드가 설치되지 않아서 발생하는 것입니다. 각 제조사에 맞는 USB 통합 드라이버를 설치하면 해결이 됩니다.

 

USB 연결 상태에서 adb devices 결과가 'unauthorized' 에러가 발생하는 경우

adb가 정상적으로 설치한 상태에서 $ adb devices에서 unauthorized 가 표시되는 경우 스마트 폰에서 "USB 디버깅 허용"을 선택합니다.

USB 연결 상태에서 adb devices 결과가 'unauthorized' 에러가 발생하는 경우

 

Mirroid 실행 상태에서 ADB 실행 에러 조치 방법

Mirroroid 실행 상태에서 사전에 설치된 adb 명령어를 사용하는 경우 Version Mismatch 에러 ("adb server version (40) doesn't match this client (41); killing...​") 가 발생할 수 있습니다. 에러 발생 원인은 ① Mirroid에서 제공하는 adb version과 ② 기 설치된 adb version이 맞지 않아 발생하는 것으로 PC에 설치된 버전의 (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) 파일을 미러로이드 설치폴더(C:\Program Files (X86)\Mirroid)로 덮어 쓰면 문제가 해결됩니다.

 

에러 메시지 

C:\User> adb shell  

adb server version (40) doesn't match this client (41); killing...​

* daemon started successfully 

Mirroid 실행 상태에서 ADB 실행 에러

조치 방법

최신 버전의 adb 파일 (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll)을 Mirroid 설치 폴더로 복사합니다.

Mirroid 실행 상태에서 ADB 실행 에러 조치 방법

 

 

2.2. Mirroid 설치 및 설정

Mirroid는 설치는 홈 페이지에서 실행 파일을 다운로드하여 설치하고 PC와 스마트 폰을 USB로 연결하면 설정이 완료됩니다. 설치 과정에서 스마트 폰을 루팅할 필요는 없으나,  ADB 연결 설정은 사전에 해야 합니다. Mirroid는 USB 연결 뿐 아니라 WiFi 연결도 지원합니다. WiFi 연결 시에는 최초 한 번에 대해서는 USB로 연결하여 스마트 폰용 Mirroid를 설치하고 이후에는 IP 주소나 QR code로 연결이 가능합니다. 

 

PC가 Windows OS에서는 별다른 어려움 없이 설치가 가능하며, 아래 동영상에 자세히 설명되어 있어 쉽게 따라 할 수 있습니다. ※리눅스와 Mac OS에 대해서는 현재 개발 중에 있어 추후 배포 예정이라고 합니다.  우분투에서 Mirroid가 사용 가능하다면 실제 동작을 확인 후 업데이트하도록 하겠습니다

미러도이드 연결 가이드 (출처: www.youtube.com/watch?v=m1i7DMBTO9g)

 

Mirroid 공식 사이트 (https://kr.mirroid.io/?utm_source=tstory_mobaswgbj) 에서 PC의 윈도우 설치 파일 다운로드할 수 있습니다.  필요시 설치 경로를 변경할 수 있고, 바로가기, 작업 표시 줄 옵션 등을 사용자가 지정할 수 있습니다. 

Mirroid 공식 사이트 ( https://kr.mirroid.io/?utm_source=tstory_mobaswgbj ) PC의 설치 파일 다운로드

 

PC 설치된 Miroid 폰을 실행하면 자동으로 아래와 같은 화면이 보여줍니다.  PC와 스마트 폰을 USB 스마트 폰 연결이 되지 않는 경우에 각 제조사 별로 설정 가이드를 제공하고 있습니다.  ADB 연결이 정상적으로 진행이 되었다면 아래 설정 가이는 화면은 사라지고, PC 화면에서 스마트 폰이 미러링이 될 것입니다. 

PC 설치 된 Miroid 폰을 실행 시 화면

 

 

와이파이 무선 연결 설정을 위해서 최초 1회에 대해서는 USB을 연결을 합니다. PC의 연결 화면에서 상단의 ① 링크 메뉴를 누르고 기기 관리 메뉴의 하위에 와이파이를 연결을 시도합니다.  USB 연결을 시도하면 스마트 폰으로 필요한 파일을 설치하는 것으로 보입니다.

WiFi 무선 연결 설정: 최초 1회에 대해서는 USB 연결에서 WiFi를 연결 설정해야 함

 

 

다시 초기 설정 메뉴에서 'WiFi 연결' 탭에서 스마트 폰의 IP주소나 QR code를 활용하여 스마트 폰과 연결할 수 있습니다.  스마트 폰의  IP주소는 앞 단계에서 설치된 Mirroid 앱을 실행하면 화면에 표시되며, QR Code 스캔 기능 또한 지원하고 있습니다.  이 단계에서 주의해야 할 점은 PC와 스마트 폰이 '같은 WiFi 공유기'에 연결되어 있어야 합니다.  그렇지 않은 경우 IP 주소로 연결할 수 없습니다.

 WiFi 무선 연결: IP주소를 입력하거나 QR code를 활용

 

WiFi 무선 연결인 경우에는 공유기의 성능에 따라서 다소간의 화면 지연(latency)이 발생할 수 있습니다. 무선망 품질이 좋지 않은 경우에는 "성능 설정" 메뉴에서 Bitrate, FPS, 해상도를 조절할 수 있습니다.  제가 Test 했던 환경은 WiFi 5G Hz (802.11ac, 867 Mbps)의 무선 환경과 LG V30 QHD 단말이며, 8MB, 60 fps, 1080p에서도 latency 없이 잘 동작합니다. 

Mirroid 성능 설정 메뉴

 

3. Mirroid에서 유용한 기능

3.1. 모바일 메신저/SNS을 PC에서 한글 입력하고  Copy&Paste를 지원

스마트 폰 미러링 프로그램의 다양한 기능 중  어려운 부분 중 하나는 '입력기' 처리입니다. 근본적으로 adb에서는 Input (단순 키 값만 전달)을 지원하나 언어 처리의 오토마타를 지원을 하지 않고, 키보드를 사용하는 다양한 앱과 언어가 있어 상당히 복잡한 처리입니다. 그럼에도 불구하고 Mirroid에서는 사용 가능한 수준의 한글 입력을 지원하고 있습니다. (물론 일부 버그는 있습니다.) 

 

Mirroid를 설치하고 오른쪽 메뉴에서 키보드를 선택하면 "MirroidInput"으로 변경할 수 있습니다.  한글이나 영문 또는 다른 언어 입력 시 버그가 있다면 키보드를 변경하면 사용 가능합니다. 아래 테스트는 입력기는 "MirroidInput"를 사용하였으며, Google Keeps와 카카오톡을 PC와 연결된 키보드를 사용해서 입력한 것입니다.  Google Keeps에서는 한글 입력이 Windows 프로그램 사용 것 유사할 정도로 한글/영문 입력에 문제가 없었고, 카카오 톡인 경우에는 한/영 변환이 아주 가끔 안 되는 현상이 있었지만 키보드를 Mirror Input으로 변경하면 정상적 입력이 가능하였습니다. ※ 카톡에서 가끔 한/영 변환 안되는 문제는 추후 안정화될 것으로 기대됩니다. 

 

Copy & Paste는 스마트 폰 ↔ 스마트 폰와 PC ↔  스마트 폰의 Text에 대해서 정상 동작하는 것을 확인했습니다. 키보드 설정을 Mirroid Input을 설정한 상태에서  윈도우에서 임의의 텍스트를 Ctrl+C 하고, 미러링 화면에서 Ctrl+V 하면 paste 됩니다. 

Mirroid에서 한글 입력 및 Copy&Paste 기능 지원

 

3.2. Stay Awake  기능 - 마우스로 Display on 하고 잠금 화면도  풀 수 있음

스마트 폰 미러링 프로그램들의 중요한 기능 중 하나는 "스마트 폰의 화면이 꺼져 있는 Deep sleep 상태에서 Disply On을 편하게" 할 수 있는 방법이 있어야 합니다. 기존에 Display On을 스마트 폰을 터치를 해야 했었으나, Mirroid에서는 직관적이고 아주 편리한 방법으로 Display On을 시킬 수 있습니다.  PC에서 꺼진 화면 위에 마우스만 살짝 올리면 자동으로 Display On이 되고, 잠금 화면의 패턴도 마우스로 풀 수 있습니다

Stay Awake  기능 - 잠금 화면에서도 사용 가능

 

 

3.3. 가로/세로 전환, Full 화면 기능 - 스마트 폰 유튜브 영상을 PC 전체 화면으로 Play

스마트 폰 미러링 프로그램의 활용도가 높은 부분 중 하나는 동영상 시청입니다.  Mirroid에서는 가로↔세로 화면 전환을 PC에서 클릭 하나로 해결할 수 있고, PC에 전체 화면도 지원합니다. 이는 스마트 폰에 있는 영화를 PC의 전체 화면에서 볼때 유용합니다. 

 

무선 WiFi로 연결하고 고해상도 동영상을 스마트 폰에서 Play 시키면 마치 Mirracast로 연결할 것처럼 PC 화면을 사용할 수 있습니다.  영상에 Latency가 거의 없어 스마트 폰의 동영상을 PC에서 즐길 수 있습니다.  동영상 시청 시 Audio는 별도의 Aux cable이나 BT receiver를 사용해야 합니다. Audio 미러링에 대한 Mirroid의 공식 가이드(링크)를 참조하세요. 

스마트 폰 유튜브 영상을 PC 전체 화면으로 Play

 

동영상 Play 시 Mirroid의 리소스 점유율을 보면 CPU 사용률은 11%이고, 메모리 사용량은 75MB 입니다. PC의 CPU와 RAM 영향이 거의 없어 프로그램이 아주 가볍게 동작합니다. 

동영상 Play 시 Mirroid의 리소스 점유율

 

3.3. 편리한 파일 공유: Drop & drop 

스마트 폰과 PC 간 파일 공유는 Drap & Drop으로 가능하고 미리 설정된 경로 저장됩니다.  Android 개발자는 $ adb push 명령어나 MTP의 대안으로 사용할 수 있고, 일반 사용자에게는 Windows의 UX와 유사한 사용 경험을 줄 수 있습니다. 

스마트 폰과 PC간 파일 공유: Drop & drop 

 

3.4. 가상키: PC 키보드로 모바일 게임을 즐기기

모바일 게임 작은 화면에 터치를 통해서 게임할 수 있도록 UI가 구성되어 있습니다. Mirroid는 PC 키보드를 사용하여 모바일 게임을 즐기도 있도록 '가상키' 기능을 지원합니다. 가상 키 기능은 스마트 폰 화면 터치 영역을 특정 키보드에 맵핑하여 키보드로 화면 터치할 수 있는 효과를 줄 수 있습니다. 예를 들어, 아래 카드라이더 예제에서는 '키보드 D'는 '오른 쪽 방향키 터치 영역'에 맵핑하여 키보드 D를 누르면 오른쪽 방향키를 터치하는 효과를 줄 수 있습니다. 

 

가상키 기능을 사용하기 위해서는 키보드 설정 메뉴에서 게임에 필요한 동작을 키보드에 맵핑하고 저장합니다. Mirriod에서는 배틀그라운드, 카드러쉬, FiFA, 원신 게임에 필요한 키보드 맵핑 값을 제공하고 있고, 사용자 키보드 설정도 지원합니다. 가상키 기능에 대한 설명은 가상키 공식 가이드와 게임 경험담(블로그)를 참고하세요. 

 

가상키: PC 키보드로 모바일 게임을 즐기기

 

3.5. 기타 기능

앞서 설명한 기능 이외에 전화 화면 끄기, 볼륨 조절, 키 맵핑, 화면 캡처와 동영상 녹화 기능과 함께  스마트 폰 하단의 Navigation Menu에 해당하는 Back Key, Home, Menu Key 가 지원됩니다.  동영상 녹화 및 캡쳐는 스마트 폰 화면을 PC에서 저장할 수 있는 유용한 기능입니다. 

기타 유용한 기능

관련 글

[모바일 SW 개발/Android] - 안드로이드 adb 설치 및 설정 방법

[개발환경/Tips] - Spotify 한국에서 사용하는 방법

[모바일 SW 개발/Android] - 안드로이드 스마트 폰 화면 미러링 방법: scrcpy 사용법

[모바일 SW 개발/Android] - 파이썬으로 Apk Download 자동화: Selenium기반의 Apk 크롤러

[모바일 SW 개발/Android] - Android apk Decompile과 분석 tool: apktool 사용법

[개발환경/Tips] - 광고 없는 Android 토렌트 앱: LibreTorrent

[모바일 SW 개발/Android] - Android에서 리눅스 App 실행: Linux Terminal Emulator (Termux) 활용

[모바일 SW 개발/Python] - MobaXterm (Cygwin)에서 Python 및 PIP 설치

[모바일 SW 개발/Android] - Android에서 Python 실행 (SL4A와 Termux 활용)

[모바일 SW 개발/Android] - Android apkanalyzer 에러: java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

[모바일 SW 개발/Android] - Android 소스 최적화 (100GB에서 65GB로 줄이기)

[모바일 SW 개발/Android] - Android 11 (R-OS) Emulator에 설치하기

[모바일 SW 개발/Android] - Android 11 기능 소개

 

※ 본 포스팅은 Mirroid.com에서 원고료를 지원받아서 작성하였습니다.




댓글