2026년 10월 19일 월요일

Electric Objects EO1을 다시 살리는 사람들

Electric Objects EO1을 원래 서비스와 관계없이 활용하려는 시도는 이미 오래전부터 있었다. 이번에 EO1을 다시 사용해 보면서 특히 도움이 된 자료는 두 가지였다. 시간 순서로 보면 Darius Kazemi의 Hack Your EO1이 먼저이고, 그 뒤에 Christian Boyle의 eo1-workaround가 이어진다.

Hack Your EO1 — Darius Kazemi

먼저 참고한 것은 Darius Kazemi가 Feel Train 블로그에 2015년 9월 공개한 Hack Your EO1이다. 이 글은 EO1을 단순한 디지털 액자가 아니라 Android 4.4.2 KitKat이 돌아가는 하나의 컴퓨터로 바라본다.

EO1 뒷면의 micro-USB 단자에 OTG 어댑터와 USB 허브를 연결하여 키보드와 마우스를 사용할 수 있고, Windows 키와 B를 함께 누르면 Android의 기본 웹 브라우저를 실행할 수 있다는 매우 중요한 정보도 이 글에서 소개한다. 브라우저에서 APK를 내려받아 직접 설치하거나, Startup Manager를 이용하여 특정 앱을 부팅할 때 실행시키는 방법도 다룬다.

엊그제 EO1을 만지면서 OTG 허브에 키보드와 마우스를 연결하고 Win+B를 눌러 브라우저를 띄웠던 것도 바로 이 방법을 따른 것이다. 오래된 전자액자 안에 멀쩡한 Android 컴퓨터가 숨어 있다는 사실을 알려 준, 이번 작업의 출발점과 같은 글이었다.

참고: Darius Kazemi / Feel Train — Hack Your EO1

이 글은 Electric Objects의 서비스가 살아있던 시절 작성되었다. 당시에는 이를 이용하여 임의의 URL을 EO1으로 내보내는 것이 가능하였다. 그러나 지금은 다른 방법을 찾아야 하고, 몇 시간의 노력 끝에 같은 Wi-Fi 네트워크 내에 있는 PC 서버에서 제공하는 웹사이트를 EO1에서 디스플레이하는데 성공하였다.

eo1-workaround — Christian Boyle

그 다음으로 직접적인 도움이 된 것은 Christian Boyle의 eo1-workaround이다. GitHub에 공개된 이 프로젝트는 제목 그대로 서비스가 중단된 EO1을 다시 사용할 수 있도록 하는 우회 방법을 제시한다.

여기에서도 EO1에 USB 허브와 키보드·마우스를 연결하고 Win+B로 기본 브라우저를 여는 방법을 사용한다. 그 다음 Firefox를 APK 형태로 내려받아 설치하고, 웹페이지를 이용하여 사진이나 이미지를 EO1 화면에 표시한다.

특히 흥미로웠던 것은 Firefox를 사용하는 이유였다. EO1에 들어 있는 오래된 Android 기본 브라우저보다는 Firefox가 Fullscreen API를 지원하기 때문에 브라우저의 메뉴나 주소창이 없는 디지털 액자다운 화면을 만들기에 유리하다.

실제로 이번 작업에서도 이 아이디어를 따라 구형 Android에서 동작하는 Firefox 68을 설치했다. Firefox의 홈페이지를 PC에서 실행하는 로컬 웹 서버 주소로 지정했더니 EO1을 껐다 켜도 그 설정이 유지되었다. 결국 Firefox는 이번 시스템의 실제 디스플레이 역할을 맡게 되었다.

Firefox 앱을 설치하는 과정에서 한 가지 작은 장애물도 있었다. EO1의 브라우저에서 http://PC주소:8000/something.apk처럼 APK 파일의 주소를 직접 열면 파일 자체는 다운로드되지만, Android가 이를 설치 가능한 APK로 제대로 인식하지 못해 “Can’t open file”과 같은 문제가 발생했다. 원인은 Python의 기본 python -m http.server 8000이 이 환경에서 .apk 파일을 Android가 기대하는 MIME 형식으로 전달하지 못했기 때문이었다. 그래서 작은 server.py를 만들어 .apk 확장자에 application/vnd.android.package-archive라는 MIME type을 명시하고, 이 서버를 대신 실행하였다. 그 뒤에는 같은 주소에서 APK를 내려받아 정상적으로 설치할 수 있었다. 결국 server.py는 별도의 복잡한 웹 서버가 아니라, 오래된 Android가 APK 파일을 올바른 설치 패키지로 알아보도록 HTTP 응답의 파일 형식을 정확히 알려 주기 위한 작은 보완책이었다.

참고: Christian Boyle / GitHub — eo1-workaround

두 프로젝트에서 나의 MetBoot까지

두 자료를 시간 순서와 역할로 놓고 보면 꽤 자연스럽게 연결된다. Darius Kazemi의 글이 EO1의 Android 내부로 들어가서 키보드, 마우스, 브라우저와 APK를 사용하는 기본적인 방법을 보여 주었다면, eo1-workaround는 그 방법을 이용하여 원래 Electric Objects 서비스가 사라진 뒤에도 EO1을 웹 기반 디지털 디스플레이로 사용하는 구체적인 방법을 보여 주었다.

이번에 내가 한 작업도 처음에는 거의 같은 길을 따라갔다. OTG 키보드와 마우스로 EO1에 접근하고, Win+B로 브라우저를 열고, APK를 sideload하고 Firefox를 설치했다.

다만 마지막 단계는 조금 달라졌다. The Metropolitan Museum of Art의 공개 작품을 PC에서 자동으로 내려받아 로컬 웹 서버로 제공하고, EO1에서는 Firefox로 그 페이지를 표시하도록 만들었다. 그리고 EO1이 켜지면 Firefox를 자동으로 실행시키기 위해 Android 4.4(API 19)에서 작동하는 아주 작은 앱인 MetBoot까지 직접 만들었다. 여기까지 오게 될 줄 누가 알았겠는가?

따라서 이 작은 프로젝트의 계보를 한 줄로 적는다면 다음과 같다.

Hack Your EO1 → eo1-workaround → MetBoot + The Met local gallery

처음에는 오래된 전자액자 하나를 다시 써 보자는 생각이었는데, 결국 OTG, Android 4.4, APK sideload, Firefox, Python 웹 서버, Android Studio까지 건드리게 되었다. 하지만 앞서 이런 기기를 열어 보고 기록을 남긴 사람들이 있었기에 가능한 일이었다.



다음의 목표는 Wi-Fi가 없는 환경에서도 쓸 수 있도록 USB 메모리에 사진을 담아서 이를 표시하게 만드는 일이다. 쉽게 될 것이라고는 생각하지 않는다.

댓글 없음:

댓글 쓰기