라즈베리파이4 안드로이드 10 설치 과정
가독성 망한 정보글
준비물
라즈베리파이4 (최소 램4기가)
충전기 5V 2A 이상 (공식 추천은 5V 3A입니다만 인터넷 찾아본 결과 CPU 4코어를 풀로 돌려도 전기 소모량이 7w 정도입니다. 5V 3A를 최대한 쓴다면 15w가 되는데 서드파티 부품에 전원공급 하는걸 가정한 경우인 듯합니다. 일단 제가 5V 2A로 1년 넘게 잘 굴렸습니다. 어느날 충전기가 죽긴 했지만...)
micro sd 최소 16기가 (CLASS 10 이상 추천)
micro hdmi 케이블 (필수, micro hdmi - hdmi 젠더 가능, 더미 플러그 가능, hdmi 연결 없으면 부팅 안됨) (mesa 그래픽 드라이버가 EDID를 요구해서 케이블 연결 없이 부팅할 수 없습니다. SwiftShader를 사용한다면 케이블이 없어도 됩니다만 라오를 실행하는게 불가능에 가깝습니다. 10배 이상 느려지는 것 같습니다.) (LineageOS 18.1, 안드로이드 버전으로는 11, 설치하면 micro hdmi 없어도 부팅됩니다. 최초 부팅시 설정하려면 모니터로 봐야하니까 케이블이 필요하지만 그 이후로 통발 굴릴때는 없어도 됨)
usb 메모리 (설치 시)
usb 마우스 (설치 시)
0. 이 글은 추천글이 아닙니다
제가 라즈베리파이 통발을 사용하고 있지만 저는 리눅스에 대해 아는게 별로 없고 안드로이드에 대해 아는 것도 거의 없습니다. 따라서 이 글에 적혀있는 정보들은 부정확하거나 비효율적인 정보일 수 있습니다.
단적으로 저는 종종 발생하는 라오 강제종료 현상도 해결 못했습니다. tasker를 사용해서 바로 알람이 오도록 꼼수를 쓰고 있기 때문에 사용에 지장은 없습니다만 바꿔 말하자면 응용능력 없으면 문제 터져도 방법이 없다는 이야기입니다.
다만 먼저 삽질한 유저로써 남는 라즈베리파이 써먹어보겠다는 유저에게 시행착오를 적게 하도록 정보를 공유해주는게 목적입니다.
그리고 라즈베리파이는 안드로이드 실행에 hdmi 연결이 필수라는 점이 상당히 불편하기 때문에 비추천입니다.
그냥 오드로이드 쓰세요(1)
컴덕들이 남한테 조립컴 권유하는게 금기인 것처럼 이것도 제가 잘 모르는걸 추천하는 것도 좋은 건 아니라... (본심)
1. micro sd 카드에 리눅스 설치, 라즈베리파이4 접속
라즈베리파이4 부터는 mirco sd 외에도 eeprom이라는 작은 용량의 저장소가 있습니다. 약 512KB 크기이며, 부팅 관련 코드, 기타 등등이 들어있다고 합니다.
여기에 들어있는 펌웨어를 업데이트 하면 발열이 줄어듭니다.
( 참조 : https://www.tomshardware.com/news/raspberry-pi-4-firmware-update-tested,39791.html )
이것은 관련 코드를 개선해서 항상 풀로드 상태였던 USB 컨트롤러를 아이들IDLE 상태가 될 수 있도록 하는 업데이트라고 합니다.
또한 라즈베리파이는 28nm 공정을 사용합니다. 그래서 12nm를 사용하는 오드로이드 C4, N2에 비해 발열이 심합니다. 가능하다면 업데이트를 하는게 좋습니다.
펌웨어를 업데이트 하면 usb 부팅도 가능해집니다. 다만 usb 부팅에 대해서는 다루지 않겠습니다. 라즈베리파이 사용자 중에는 usb3.0을 통해서 ssd로 부팅하는 사람도 있겠지만 ssd를 구입하는건 추천하지 않습니다. 배보다 배꼽이 더 커지는 격이니까요.
그런걸 하려면 라즈베리파이보다 오드로이드+emmc 조합이 더 낫습니다. 오드로이드 쓰세요(2)
라즈베리파이 공식 사이트에서는 이미지 설치 프로그램으로 balenaEtcher를 추천합니다.
https://www.balena.io/etcher/
Raspberry Pi OS(리눅스 데비안 입니다)는 여기서 받으면 됩니다. lite 버전을 받으세요. gui 버전을 받을 필요가 없습니다. eeprom 업데이트 하고 바로 지울거니까요.
https://www.raspberrypi.org/software/operating-systems/
1.1 ssh로 접속
raspi os의 설치가 끝나면 256mb짜리 boot 파티션에 ssh라는 이름의 파일을 만들어주세요. ssh.txt 아닙니다. 확장자 없이 ssh라는 이름을 가진 파일을 만들어주세요. ssh를 통해 접속하려면 이 방법이 편합니다.
바탕화면에서 키보드 shift + 마우스 우클릭을 하면 '여기서 명령 창 열기' 혹은 윈도우 10이라면 power shell 열기가 나올겁니다.
그걸 클릭해서 cmd(혹은 power shell, 이하 계속 cmd라고 부르겠습니다)를 열고
echo "" > ssh
fsutil file createnew ssh 0
라고 하면 확장자 없이 ssh라는 이름의 파일이 생성됩니다.
이제 이렇게 만든 micro sd 카드를 라즈베리파이에 꽂아넣고 부팅을 한 뒤 putty.exe 라는 프로그램을 통해 접속하면 됩니다.
putty.exe는 구글에서 검색하면 바로 나옵니다.
putty.exe로 라즈베리파이에 접속을 하려면 192.168.xxx.xxx 같은 내부 ip 주소를 알아야 합니다.
내부 ip는 공유기 ip로 접속해서 확인할 수 있습니다. 제조사마다 다르지만 흔히 쓰이는 iptime의 주소는 192.168.0.1 입니다. 윈도우에서 cmd 열고
ipconfig /all
입력하면 게이트웨이에 공유기 주소가 나올겁니다. 아마도.
그 ip 주소로 접속을 해서 라즈베리파이의 ip를 확인해야합니다.
1.2 그냥 본체에 바로 연결
라즈베리파이에 직접 모니터와 키보드를 연결하셔도 됩니다.
2. 라즈베리파이 펌웨어 업데이트
Raspberry Pi OS의 기본 아이디 비밀번호는 pi, raspberry 입니다.
부팅 이후에 명령어 몇개를 입력해야합니다.
sudo su
apt update
apt full-upgrade -y
apt install rpi-eeprom
rpi-eeprom-update
rpi-eeprom-update. -a
(자꾸 update. 뒤에 .이 찍히는데 .은 빼주세요. 이거 루리웹에 버그가 있나 계속 .이 들어가네요)
rpi-eeprom-update로 업데이트가 가능한지 확인하고, 업데이트가 필요하다면 rpi-eeprom-update. -a를 사용합니다.
그 이후에 reboot 명령어를 써서 재부팅이 완료되는 것까지 확인한 뒤에 라즈베리파이를 끕니다.
3. micro sd카드에 안드로이드 설치
설치할 안드로이드 이미지는 공식지원이 아닙니다. 몇몇 개발자들이 라즈베리파이에 커스텀롬을 포팅한 것입니다. 포팅된 롬은 maxwen의 OmniRom과 KonstaKang의 LineageOS가 존재합니다.
OmniRom은 루팅을 제공할 계획이 없다고 하니 원격 조종이 불가능합니다.
따라서 사용할 것은 LineageOS 입니다. 저는 LineageOS 17.1에서 2021-01-22 빌드를 사용중이고, 이 버전을 기준으로 설명할 것입니다.
https://konstakang.com/devices/rpi4/LineageOS17.1/
32비트 커널을 사용하지만 상당히 안정적입니다.
다운받을 파일은 아래의 4개입니다.
lineage-17.1-20210122-UNOFFICIAL-KonstaKANG-rpi4 zip
https://androidfilehost.com/?fid=17248734326145720259
opengapps 의 android 10 버전 pico
https://opengapps.org/?arch=arm&api=10.0&variant=pico
lineage-17.1-rpi-resize zip
https://androidfilehost.com/?fid=8889791610682901036
lineage-17.1-rpi-recovery2boot zip
https://androidfilehost.com/?fid=8889791610682901035
첫번째 파일인 lineageOS는 micro sd에 설치해야 합니다. 이건 위에서 언급한 balenaEtcher를 사용해야합니다.
나머지 파일들은 모두 별도의 usb 메모리에 저장하세요.
micro sd에 LineageOS를 설치한 뒤 라즈베리파이에 꽂고 부팅을 합니다. 그 뒤 usb 마우스를 연결하세요.
안드로이드 설정에 들어간 뒤 맨 밑의 태블릿 정보에 들어가세요.

스크린샷의 fps는 예전에 설치했던 어떤 어플의 기능인데 이제는 그 어플을 안쓰고 이름도 까먹었습니다. 옛날에 찍은 스크린샷이에요.
그리고 맨 밑에서 빌드번호를 마구 클릭해주시면 개발자 설정이 해금됩니다.
다시 안드로이드 설정으로 되돌아 간 뒤, 아까의 태블릿 정보 위의 시스템으로 들어갑니다. 아랫쪽으로 내려서 보면 개발자 설정이 존재합니다. 거기에 들어갑니다.
Root access를 활성화 합시다.
그리고 좀 더 내려서 로컬 터미널도 활성화 합시다.
로컬 터미널 대신 ssh 어플을 설치하는 방법도 있습니다만 아직 opengapps를 설치하기 전이니 로컬 터미널을 써야합니다.
로컬 터미널의 아이콘은 대충 이렇게 생겼습니다.
로컬 터미널을 켜고
su
rpi-recovery.sh
reboot
아까 별도의 파일을 저장해둔 USB를 라즈베리파이에 꽂으세요. 그리고 마운트를 합니다.
이제 install로 들어가서 방금 마운트한 usb 폴더에 들어간 뒤 순서대로 resize,opengapps 순서로 플래싱을 합니다.

사진에 있는 파일명이 이 글의 설명과 맞지 않는건 며칠 전에 찍은 사진 재활용해서 그래요.
lineage os 18.1이나 opengapps 11이 있는건 신경쓰지 마세요. 뭔가 꼬였는지 실패해서 os 업글은 실패했습니다.
싹 밀어버리고 새로 플래싱 해야하는데 시간이 너무 오래 걸려서 그냥 안하기로 했어요. 64비트가 흥미롭긴 하지만 32비트로도 잘 굴러가니...
add more zips를 눌러서 순서대로 추가한 뒤에 한번에 플래싱 해도 되고 한개씩 플래싱해도 됩니다.
그리고 메인 메뉴에서 reboot - system 으로 재부팅.
만약에 안드로이드가 켜지지 않고 다시 twrp 리커버리가 켜진다면 recovery2boot를 플래싱을 한 뒤에 재부팅을 하면됩니다.
이제 안드로이드 10에 구글 플레이스토어가 설치되었습니다.
이쯤에서 ssh server를 설치하는 것도 좋습니다. 가끔 원격 어플이 종료 되었을 경우에는 ssh로 접속해서 재부팅 시키는 꼼수가 있는데 그때 ssh 서버 어플이 굴러가고 있다면 유용합니다. 일단 제가 쓰고 있는건 net.xnano.android.sshserver 입니다. 자동 실행 설정해두고 포트포워딩 해서 외부에서 접속하는 식으로 쓰고 있어요.
뱀발.
2021년 11월 현재, LineageOS 18.1에서 64비트가 적용되어 나왔습니다. 안드로이드 11버전에 맞는 opengapps도 나왔으니 신버전에 도전하려면 LineageOS 19 보다 LineageOS 18.1 최종버전을 쓰는게 좋을 듯 합니다. 원스토어의 경우 루팅이 되어있으면 참치 구입이 되지 않는 문제가 있어서 supersu 같은 프로그램을 설치해서 루팅을 숨겨야 할 것 같습니다. 루팅감지가 되어있는걸 피하려면 magisk를 설치해야할지도 모르겠네요. magisk는 18.1을 써야 설치가 가능합니다.
LineageOS 19는 아직 안드로이드 12 버전의 opengapps가 존재하지 않습니다. BitGapps 같은 다른 gapps를 설치하면 플레이스토어가 실행된다는 것 같은데 잘 모르겠네요.
4. 해상도 선택
설정 - 시스템 - 고급 - 고급설정 - Display resolution
anydesk를 사용하면 버벅임이 있기 때문에 해상도를 조절해야합니다.
테스트 해본 해상도는 다음과 같습니다.
1920x1080 무리.
1600x900 무리?
1280x720 여전히 조작할 때 인풋렉이 느껴짐. 답답하지만 쓸만함.
800x600 인풋렉 많이 줄어듦. 쓸만함.
640x480 이런 낮은 해상도에서도 돌아감. 신기함. 해상도가 너무 낮아서 불편함.
1920x1080에서 1280x720으로 변경했을 때는 전투 진입시 로딩속도가 빨라지기도 합니다.
1280x720에서 800x600으로 변경했을 때는 로딩속도에 변화가 거의 없었습니다.
개인적인 경험이라 다른 분들은 어떨지 모르겠습니다.
다만 이것은 집안에서 공유기를 통해 사용할 때의 이야기이고, 집 밖에서 집에 놔둔 통발에 원격접속을 하면 항상 느립니다.
5. 원격접속
Anydesk와 droidVNC-ng, Teamviewer 중에 선택하시면 됩니다.
원격 조종을 위한 접근성 권한, (루팅 필요 없음)
화면을 보기 위한 project media 권한이 필요합니다 (안드 10 이상에서만 필요, 루팅 필요)
그리고 원격조종 어플은 자동실행 설정해두세요. 그래야 재부팅때 본체에서 직접 컨트롤을 하지 않아도 원격 조종이 됩니다.
lineage 17.1은 안드로이드 10 버전인데, 이 버전부터는 보안 강화로 인해 원격 접속이 어려워졌습니다. 원격접속을 실행할 때마다 기기쪽에서 직접 확인을 눌러줘야합니다. 이걸 해결하려면 root 권한이 필요합니다.
안드로이드 9 버전에서는 괜찮습니다만 라즈베리파이의 안드로이드 9 버전은 게임이 불가능합니다. 그래픽 드라이버가 라즈베리파이 안드로이드 10부터 포함되었거든요.
그러니까 오드로이드 쓰세요 (3)
5.1 Anydesk
구글 플레이스토어에서 anydesk를 설치하면 됩니다. 그리고 원격조작을 위해서는 플러그인을 설치해야하는데, 처음 anydesk를 실행했을 때 플러그인을 설치하라는 메시지를 따라하면 됩니다. lineage os 에서는 플러그인 ad1을 씁니다.
5.2 droidVNC-ng
여러가지 단점이 있습니다. 1. 비밀번호가 최대 8글자로 제한됨. 2. 암호화 연결이 아님. 3. 공유기에서 포트 포워딩 설정을 해야 함.
다만 저는 vnc는 anydesk나 teamviewr처럼 반드시 회사를 통해야 서비스가 가능한 구조가 아니라는 점에서 높게 평가를 했고, 보조적으로 쓰고 있습니다.
5.3 Teamviewer
계정 만들어야 한다는 점에서 거부감을 느꼈기 때문에 팀뷰어는 사용하지 않았습니다. 그래서 저도 사용법을 모릅니다. 다만 유명한 프로그램이니 구글링 하면 사용법이 많이 있을 듯?
6. 접근성 권한
이걸 설정해야 원격에서 조종이 가능합니다. 안하면 그냥 원격 구경밖에 못합니다. 물론 그 원격 구경도 project media 권한이 있어야 가능합니다.
설정에서 접근성으로 들어가세요.
이런 식으로 설정해두면 됩니다.
anydesk는 ad1에 권한을 설정해주면 됩니다.
7. 원격 접속 권한
root 권한이 필요한 어플을 사용하는 방법, su 권한을 얻은 뒤 명령어를 치는 방법 이렇게 2가지 방법이 있습니다.
둘 중 하나를 선택하면 됩니다. 명령어 쓰는게 더 간단합니다.
7.1 어플 사용 방법
App Ops (패키지명 rikka.appops ), shizuku (패키지명 moe.shizuku.privileged.api ) 2개 어플을 설치해야합니다.
shizuku를 설치하기 위해서는 root 권한도 필요합니다. root 권한을 얻는 건 쉽습니다. 이 글의 스크롤을 올리면 나옵니다.
설정 - 태블릿 정보 - 빌드번호 연속터치 -> 개발자 옵션 활성화 완료
설정 - 시스템 - 고급 - 개발자 옵션 -> 스크롤 쭉 내리다보면 root 권한 활성화 있습니다.
이렇게 root 권한을 활성화하고 원격 접속 어플을 사용해야합니다.
원격 접속 어플을 먼저 실행해보지 않는다면 App Ops에서 project media 권한이 표시되지 않습니다.
root 권한 없이 실행하는 방법도 있다고는 하는데 무슨 말인지 몰라서 그냥 쉬운 방법인 root 권한 얻고 실행하는 쪽을 선택했습니다.
shizuku에서 루트된 기기용 시작을 한 뒤
저 인증된 앱 관리 쪽을 눌러서 app ops를 체크해줘야 합니다
그리고 app ops를 실행한 뒤에 대충 어플 이름을 검색해서 설정하면 됩니다.
앞에서도 언급했지만 project media 권한은 원격으로 접속 시도를 해보기 전에는 나오지 않으므로 원격 접속 시도를 한번 해본 뒤에 설정해야합니다.
8.2 명령어 쓰는 방법
터미널을 열거나 ssh로 접속한 뒤에
su
appops set com.anydesk.anydeskandroid PROJECT_MEDIA allow (anydesk에 권한 주는 명령어)
appops set net.christianbeier.droidvnc_ng PROJECT_MEDIA allow (vnc에 권한 주는 명령어)
이런 식으로 써도 됩니다.
이쪽이 훨씬 간단합니다.
9. wifi
라즈베리파이4는 와이파이가 보드에 내장되어있습니다.
usb 3.0 사용시 2.4Ghz 대역의 wifi와 블루투스가 안되는 이슈가 있습니다.
이건 라즈베리파이만의 문제가 아니라 usb 3.0 규격 자체의 이슈입니다.
그 외에도 종종 와이파이 연결이 안되는 상황이 있는데 해결책은 모릅니다;
시간이 지나면 알아서 되던데 왜 안되는지 모르고 왜 되는지도 모릅니다;
국가별 문제로 와이파이가 안되는 경우에는 강제로 국가를 고정시키는 방법이 있습니다.
부팅할 때마다 콘솔창을 열고
su
iw reg set US
를 입력하면 됩니다.
영구적인 방법으로는 /vender 내부에 있는 특정 파일을 수정하는 방법이 있습니다. 이 방법은
su
mount -o rw,remount /vendor
nano /vendor/etc/wifi/wpa_supplicant_overlay.conf
마지막 줄에 country=US 추가하면 됩니다.
10. 원스토어
와이파이로도 인터넷이 되니까 실행은 잘됩니다만 루팅 권한을 쓰고 있으니까 참치 구입이 막히네요.
원격접속에서 원스토어 로그인을 할 경우 화면이 새까맣게 나오는 문제가 있습니다.
개인정보가 노출되는 화면이라 캡처가 불가능하게 설정되어서 생기는 문제점으로 추측됩니다.
11. tasker
네이버 공식카페에 있는 tasker 알람 1.6 버전을 이래저래 마개조 후 쓰는 중입니다.
tasker 1.6에서 수정한 건 다음과 같습니다.
1.6의 변수 이름 오타 수정 ( LO_Nomiedia_Exist -> LO_Nomedia_Exist )
라오가 갑자기 종료될 경우 텔레그램으로 알림 보내기 (갑작스러운 라오 강제종료를 알 수 있음)
라오가 종료되지는 않았지만 에러로 멈췄을 경우 텔레그램으로 알람 보내기 (원인 불명의 멈춤 현상이 생겼을 시 즉각적인 임시조치 가능)
라운드 숫자 인식 변경 (글자모양을 비교하는 대신 숫자 값의 크기를 비교하도록 변경)
OCR의 cpu부담을 줄이기 위해 스크린샷을 자르고 리사이징으로 크기 조절. (효과가 있는지는 불명...)
스크린샷의 잦은 쓰기/지우기가 sd카드 수명에 영향을 주지 않을까 싶어 램디스크 적용. (root 권한 필요)
스크린샷 후 대기시간을 임의로 설정하는 대신 스크린샷 찍는 방법을 변경. 경로 지정이 가능하다는 장점이 있어 /sdcard/Download/Cache/Current.png 캡처파일을 바로 생성할 수 있음. (아마도 root 권한 필요)
스크린샷 찍은 후 대기시간을 가변적으로 설정.
부팅때마다 와이파이 설정 iw reg set US
라즈베리파이에 맞춰서 색상값을 수정했으며 1920x1080 / 1600x900 / 1280x720 / 800x600 / 640x480 해상도에서 테스트 완료했습니다.
해상도가 낮을수록 스크린샷을 찍는 속도가 빨라집니다.
아직 제가 이해를 못하고 있고, 가끔 멈추는 문제가 있고...
요즘도 조금씩 손을 대고있다보니 스파게티소스코드처럼 되어버려서 시간이 지날수록 저도 헷갈리고 있습니다.
일단 저도 설명을 못할 것 같아 아직 미공개;
주의사항
전원을 뽑아서 강제로 종료시키는 행동은 micro sd카드를 손상시킬 수 있다고 합니다.
저는 안드로이드의 콘솔창을 열어서 reboot -p 로 종료합니다.
하지만 그래도 fsck -f를 해보면 fix가 많이 뜹니다;
...요즘은 그냥 귀찮아서 전원 뽑습니다
Q. 발열은?
A. 방열판이 없이 구석에 박아뒀을 때 78도까지 올라가는걸 경험해봤습니다. 10월에는 창문 근처에 두면 웃풍 때문인지 60도 중후반 나왔습니다. 12월 들어오고 기온이 영하로 떨어지니 4~50도로 떨어집니다. 그리고 이듬해 7월달에는 방열판을 결국 달았습니다. 대충 74도까지 올라가는걸 봤습니다.
Q. 라즈베리파이로 통발 굴려도 될까요?
A. 쌩고생 해야하니까 추천하기 힘듭니다. 오드로이드N2를 쓰거나 중고 갤S7 쓰세요. 오드로이드 C4도 가능하지 않을까 싶지만 사용후기가 안보이네요. 공식카페에 발열로 튕겼다는 글 1개밖에 없습니다. 오드로이드 N2에 비해 저렴하게 구축 가능하다는 장점은 있습니다만 에러 터지면 다른 사람들에게 물어보기 힘들테니 도전정신이 넘치는 분만 하세요.
Q. 속도는?
A. 로딩이 느린 듯 합니다. 312 땃쥐런 기준( https://cafe.naver.com/lastorigin/730953 )으로 로딩포함 드랍제외 시간으로 144초가 나오는데 표에서 제시한 130초에 비해 14초가 더 나옵니다. 시작부터 로딩 완료까지 비교했을 때 대략 13초가 걸리는데 영상의 7초에 비해 6초가 더 걸립니다. 오버클럭은 안했습니다.
( 대규모 패치 이후에 로딩이 빨라졌을지 모르겠습니다. 20년도에 확인했던 기준입니다. 글을 그때 쓰다가 방치했던거라 최근에는 확인을 안했습니다. )
Q. 가격은?
4기가 기준 중고나라 7만원, icbanq 가격 9만9천원입니다. 라즈베리파이만 구입했을때 이렇고 충전기나 micro sd 카드는 따로 구입해야합니다. 신품을 구입하려면 오드로이드 C4가 더 저렴할겁니다.
근데 그냥 오드로이드 쓰세요.
...전에는 더 쌌던 것 같은데 반도체 대란 터지고 가격이 올랐나;
Q. 자꾸 오드로이드 쓰라고 하는데 왜 라즈베리파이로 라오를 돌렸나요?
A. 그냥 라즈베리파이를 써보고 싶었어요.






































