반응형

루팅된 안드로이드에서 리모컨이나 조이스틱 버튼 키매핑을 하고 싶을때가 있습니다.
여러 키매핑 어플들이 있으나 입력장치를 매핑어플용으로 변경해야 해서 불편할때가 많습니다.
한글 입력이 안되거나 스크린 키보드가 안뜨거나 뭐 그렇죠.

 

셋팅하기는 어렵지만 사용하기 가장 편리한 방법은 직접 장치별 keylayout 파일을 수정하는 방법이 있습니다.
장치별로 매핑을 해놓으면 다른데 영향을 전혀 안주거든요.

 

루팅이 되어있어야 합니다.
루팅이 안되있을 경우 아래 글 참조해주세요.

2020/08/30 - [분류 전체보기] - 블루투스 리모컨 버튼 키매핑 - 게임, 이북용

 


준비물

루팅된 안드로이드폰/타블렛
ADB 와 드라이버가 설치된 PC
(2020/08/22 - [모바일 디바이스/루팅 및 커스텀 펌웨어] - 루팅과 펌웨어 업데이트를 위한 ADB / fastboot 설치와 사용)
PC와 연결할 데이터 케이블

 

키 리맵

keylayout 파일 수정 (.kl file)

안드로이드 장치의 keylayout 파일은 아래와 같은 순서로 참조됩니다.
파일들은 소유 권한이 660 (rw,r,r) 입니다. 새 파일을 만들고 chmod 660 을 잊지 마세요.

/odm/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/vendor/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/system/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/data/system/devices/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/odm/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
/vendor/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
/system/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
/data/system/devices/keylayout/Vendor_XXXX_Product_XXXX.kl
/odm/usr/keylayout/DEVICE_NAME.kl
/vendor/usr/keylayout/DEVICE_NAME.kl
/system/usr/keylayout/DEVICE_NAME.kl
/data/system/devices/keylayout/DEVICE_NAME.kl
/odm/usr/keylayout/Generic.kl
/vendor/usr/keylayout/Generic.kl
/system/usr/keylayout/Generic.kl
/data/system/devices/keylayout/Generic.kl

공식 문서 설명은 아래와 같습니다.
Source: https://source.android.com/devices/input/key-layout-files.html

 

연결된 장치 이름 찾기

먼저 키맵을 수정하고 싶은 특정 device 의 vendor 와 product 이름을 찾아야 합니다.
pc 와 안드로이드를 연결 후 adb 명령으로 접속 후 (블루투스 페어링 후)연결된 device를 확인합니다.
윈도우에서는 cmd 를 실행한 후 아래 명령어를 순서대로 입력합니다.

adb shell
su
cat /proc/bus/input/devices

저는 아래와 같은 장치를 찾았고 매핑할 예정입니다.

cat /proc/bus/input/devices

I: Bus=0005 Vendor=05ac Product=3232 Version=0001  
N: Name="Gamepad"  
P: Phys=  
S: Sysfs=/devices/virtual/misc/uhid/0005:05AC:3232.0005/input/input11  
U: Uniq=D1:88:05:05:55:55  
H: Handlers=mouse0 event7 cpufreq  
B: PROP=0  
B: EV=10001f  
B: KEY=3f0003007f 0 0 483ffff17aff32d bf54444600000000 6fdb0000001f0001 130f938b17c007 ffff7bfad9415fff febeffdfffefffff fffffffffffffffe  
B: REL=143  
B: ABS=100030627  
B: MSC=10

기억해야 할건 vendor 05ac 와 product 3232 입니다.

 

key code 구조

kl 파일 안에 key code 는 아래와 같은 구조입니다.

KEYCODE_APP_SWITCH = APP_SWITCH

사용 가능한 키 코드 리스트는 공식 문서에서 확인 가능합니다.
http://developer.android.com/reference/android/view/KeyEvent.html

 

 

key code 스캔

앱스토어에서 "Gamepad test" 를 설치 후 실행합니다.
Gamepad test를 선택하고 들어간 후 사용하고 싶은 button 을 눌르면 scancode 에 키코드가 나타납니다.
이 키코드를 .kl 파일에 서 매핑 하면 됩니다.
제 경우는 아래와 같군요.

 

 

 

 

 

.kl 파일 수정

adb shell 로 접속해서 수정해도 되고
root 접근권한 있는 앱에서 수정해도 됩니다.

 

아래 폴더에서 아까 기억해놓은 vendor 와 product 파일이 있는지 확인합니다.

/odm/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl  
/vendor/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl  
/system/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
...
...

있을경우 사본을 복사해놓고 수정하면 됩니다.

저는 없어서 general.kl 을 복사해서 하나 만들었습니다.


/system/usr/keylayout/Vendor_05ac_Product_3232.kl

이 파일을 열어서 필요한 키를 다시 매핑해줍니다.


파일 수정 방법은 fx파일브라우저나 cx브라우저 같은 루트 접근 가능한 브라우저로 들어가서
rw 로 시스템 remount 후 해당 파일을 열어서 수정하면 됩니다.


저는 adb 로 shell 연결 후 nano 로 수정했는데요. adb 연결 후 nano 사용법은 아래 글 참조하면 됩니다.

2020/08/13 - [서버와 홈디바이스/NAS, VPN, 클라우드] - Android ADB 연결 후 vi / nano 에디터 사용

저는 Button A, B, X, Y 를 각각 Volume down / up 으로 매핑했습니다. (이북을 보기 위해서)


/system/usr/keylayout/Vendor_05ac_Product_3232.kl

key 308   VOLUME_DOWN  
key 305   VOLUME_DOWN

key 304   VOLUME_UP  
key 307   VOLUME_UP

 

이제 키보드/게임패드 연결을 끊고 다시 연결하면 반영이 됩니다.
즐겁게 사용하면 됩니다.

 

반응형
반응형

전자책 도서관을 이용하거나 게임을 할 때 블루투스 리모컨을 사용할 때가 있습니다.

이때 각 버튼이 내가 원하는 배치가 아닌 경우 다시 키매핑을 합니다.

특히 전자책의 경우 북큐브 같은 경우 리모컨에 따라 버튼이 잘 안먹히는 경우가 많아서 보통 키매핑을 바꿔서 사용중입니다.

 

알리익스프레스에서 3~4달러면 살 수 있는 저렴한 리모컨입니다.

주로 책볼때 사용하는데 위쪽 조이스틱보단 아래 버튼이 더 편해서 버튼 매핑을 바꿔서 이북을 볼 때 사용중입니다.

 

 

 

 

 

 

루팅 없이 사용하는 쉬운 방법은 아래 어플리케이션을 사용하는 방법입니다.

 

 


요약

프로그램 설치

  • External keyboard helper demo (EKH)
  • keyboard switcher

구글 스토어가 사용 불가할 경우 apkmirror 에서 받습니다.

 

 

셋팅 및 사용

  • EKH 에서 키매핑을 진행 하고
  • 키보드를 EKH 로 선택 후 사용
  • 일반적인 사용을 위해서는 다시 기존 키보드를 선택

 


블루투스 키,버튼 매핑 방법 (no root)

설치 과정 동영상

 

 

 

설치과정 설명

기본적으로 원하는 블루투스 장치가 페어링 되어 있어야 합니다. 

구글 스토어에서 External keyboard helper demo(EKH)를 받습니다.

 

 

 

EKH 를 실행하면 키보드 관리로 자동으로 연결됩니다.

EKH 를 키보드로 사용할 수 있도록 체크 하고

 

 

 

다시 EKH를 실행해서 고급설정에 들어갑니다.

 

 

키보드 매핑

 

 

나만의 키보드 맵핑

 

 

새로운 키맵핑을 추가

 

 

scancode 옆에 칸이 활성화 된 상태에서 페이지 다운으로 사용하려는 블루투스 키를 눌러서 키코드를 스캔합니다.

그리고 keycode 를 체크하고 해당 버튼이 눌릴때 원하는 동작을 선택합니다.

저는 이북을 주로 보기 때문에 volume up 이나 down 을 선택했습니다. 보통 이북 프로그램들이 볼륨 버튼은 인식하게 만들어져 있어서요.

 

 

여기까지만 해도 사용 가능합니다.

다만 EKH 가 활성화 될때만 해당 키매핑이 먹히기 때문에 키보드를 쉽게 바꾸기 위한 프로그램을 하나 더 설치했습니다.

사용 스마트폰에 따라 기본 제공되는 경우도 있습니다. 

 

아래 Keyboard Switcher 를 설치하고 notification 바에 사용 가능하도록 체크하면 이제 노티바 내리면 키보드를 바꿀 수 있게 보입니다.

 

 

 

 

 

이제 사용하시면 됩니다.

EKH 키보드 선택된 상태에서는 블루투스 장치 버튼이 매핑되어서 동작합니다.

 

 

다음번에는 루팅된 장치에서 프로그램을 사용하지 않고 바로 키맵을 편집하는 방법을 올릴 예정입니다.

장치별 키매핑 파일을 만들어서 사용하면 됩니다.

 

 

이상입니다.

반응형
반응형

출처: https://wiki.lineageos.org/adb_fastboot_guide.html

ADB란 무엇인가?

ADB는 Android Debug Bridge의 약자로 개발 툴입니다. 안드로이드 디바이스와 개인 PC(맥, 윈도우, 리눅스)간에 통신을 도와주는 프로그램입니다. 주로 USB로 연결되며 일부 버전에서는 WIFI로 연결도 됩니다. ADB는 안드로이드 개발에서 수많은 기능들을 가지고 있어서 다양한 방식으로 활용되고 있습니다. 자세한 기능은 adb --help 명령어로 확인 할 수 있습니다. 자주 사용하는 기능은 맨 아래 내용을 참조하시면 됩니다.

ADB와 fastboot 설치

구글에서 adb와 fastboot가 포함된 zip 파일을 배포하고 있습니다. 

On Windows

  1. 오른쪽 첨부를 다운받고 Windows zip from Google.
  2. 원하는 곳에 압축을 풀어주세요. 예를들면 오른쪽과 같이 사용자 폴더 아래에 %USERPROFILE%\adb-fastboot
  3. Windows 7/8 에서는
    • 바탕화면 데스크톱 아이콘에서 마우스 오른쪽을 누른 후 속성을 선택
    • 시스템 속성 윈도우에서 고급 탭 선택
    • 고급 섹션에서 환경변수 버튼 선택
    • 환경변수 윈도우에서 Path 를 선택하면 하이라이트 표시가 되고 이때 편집 버튼 클릭
    • 줄 마지막에 오른쪽 내용 추가 ;%USERPROFILE%\adb-fastboot\platform-tools
      (semi-colon이 각 경로를 구분해줍니다.)
  4. Windows 10 에서는
    • 시작 메뉴를 열고 "고급 시스템 설정 보기" 타이핑 후 실행
    • 시스템 속성 윈도우에서 고급 탭 선택
    • 고급 섹션에서 환경변수 버튼 선택 
    • 환경변수 윈도우에서 Path 를 선택하면 하이라이트가 표시가 되고 이때 편집 버튼 클릭
    • 새로만들기 누른 후 오른쪽 내용 추가 %USERPROFILE%\adb-fastboot\platform-tools
  5. universal adb driver 설치 후 재부팅

 

On macOS

  1. 오른쪽 첨부를 다운받고 macOS zip from Google.
  2. 원하는 곳에 압축 해제 - 예를들면 ~/adb-fastboot.
  3. 오른쪽 파일에 아래 내용을 추가해줌 ~/.bash_profile:

    if [ -d "$HOME/adb-fastboot/platform-tools" ] ; then export PATH="$HOME/adb-fastboot/platform-tools:$PATH" fi

  4. 로그아웃 후 다시 로그인

On Linux

  1. 오른쪽 첨부를 다운받고 Linux zip from Google.
  2. 원하는 곳에 압축 해제 - 예를들면 ~/adb-fastboot.
  3. 오른쪽 파일에 아래 내용을 추가해줌 ~/.profile:

    if [ -d "$HOME/adb-fastboot/platform-tools" ] ; then export PATH="$HOME/adb-fastboot/platform-tools:$PATH" fi

  4. 로그아웃 후 다시 로그인
  5. 아마도 오른쪽 udev도 설치 필요. 해당 this repository 에 추가 내용 확인할 것

Setting up adb

장치에 adb를 사용하기 위해서는 장치 개발자 옵션에서 USB 디버깅(debugging) 옵션을 활성화 해주어야 합니다.

  1. 설정에서 "정보(About)" 을 선택
  2. "빌드번호(Build number)" 를 7번 연속하여 탭 
  3. 뒤로 돌아가서 "개발자 옵션(Developer options)" 을 선택
  4. 스크롤을 내려서 “안드로이드 디버깅(Android debugging)” 또는 “USB 디버깅(debugging)” 항목을 활성화
  5. 장치를 컴퓨터와 연결 (데이터 통신 가능한 usb 케이블 이용)
  6. 컴퓨터에서 터미널/명령 프롬프트(command prompt) 에 들어간 후 adb devices 를 입력해서 연결 확인
  7. 장치 화면에 usb 디버깅을 허락하겠냐는 메세지가 뜨면 항상 허락을 체크하고 OK를 누르면 연결됨

이제 adb가 장치와 연결되서 사용 가능합니다! 

Setting up fastboot

장치가 fastboot를 지원할 경우 fastboot mode로 재부팅 하고 컴퓨터로 연결한 후 터미널/명령 프롬프트에서 fastboot devices 를 입력하면 연결되있음을 확인 할 수 있습니다.

fastboot mode 진입은 방법은 장치마다 다르며 보통 전원을 켤 때 특정 키를 누르면 됩니다. 아니면 adb가 연결된 상태에서 adb reboot fastboot 를 입력하면 됩니다.

삼성 갤럭시 안드로이드폰의 경우 fastboot 모드와 유사한 Download mode 모드로 진입하며 fastboot 명령어가 아닌 odin 으로 롬 라이팅을 진행해야 합니다.

  • adb shell - 장치에 shell 연결
  • adb push <local> <remote> - <local>에 있는 파일을 <remote> 위치에 복사
  • adb pull <remote> [<local>] - <remote> 에 있는 파일을 <local> 에 복사. <local>폴더를 지정하지 않으면 현재 폴더에 복사
  • adb logcat - 장치의 실시간 로그를 보여줌. You can use adb logcat -b radio to view radio logs, and adb logcat -C to view logs in colour
  • adb install <file> - 지정한 .apk 파일을 장치에 설치함
반응형
반응형

Hisense A5는?

e-ink 를 사용한 중국산 4g 스마트폰입니다. 

기존 전자책과 비교하면 CPU가 비교하기 미안할만큼 좋습니다. 그래서 매우 빨라요.

e-ink 특유의 매우 느린 리프레쉬 속도가 있지만 리프레쉬 모드를 바꿔서 사용해보면 웹서핑은 충분히 가능합니다.

기존 이북에서는 상상도 할 수 없는 속도로 말입니다.

 

타오투코리아 같은 해외구매대행 사이트에서 25만원정도면 구매할 수 있으니 가격도 합리적입니다.

들고다니면서 전자책을 읽기에는 이것보다 더 좋은 옵션은 없습니다.

 

  • 장점: e-ink, WIFI, 블루투스, 이어폰, LTE(국내 개통 가능), 빠른CPU, 좋은 명암비, 준수한 베터리
  • 단점: 기존 전자책 대비 작은 화면, 강화유리 패널(반사있음)
    (강화 유리 패널의 경우 기존 전자책보다 튼튼해서 장점이 되기도 합니다.)

 

 

 

 

그리고 최근에는 듀얼 스크린(앞면 LCD, 뒷면 e-ink), 컬러 e-ink 모델 등 다양한 버전이 나오고 있습니다.

모델별 차이점은 아래 유튜브에서 보는게 가장 좋습니다. (영어)

youtu.be/3PufgRUvI9s

 

 

 


루팅 및 Magisk 설치

출처XDA포럼: https://forum.xda-developers.com/android/general/hisense-a5-root-gapps-customizer-t4097951

 

루팅을 하면 조금 더 편하게 구글앱을 설치하고 사용할 수 있습니다.

사실 루팅 안해도 쓸만한 폰입니다. 저는 리모컨에서 키맵 변경해서 자주 사용해서 이렇게 변경했습니다.

 

준비물

언제나처럼 ADB 가 사용 가능한 컴퓨터

데이터 통신 잘되는 micro usb 케이블

잘 터지는 인터넷

Hisense A5

 

루팅 Flow

QPST 설치

QPST 이용 EDL 모드 진입 > root image 플러쉬

 

 

ADB 설치 및 사용방법

2020/08/22 - [모바일 디바이스] - 루팅과 펌웨어 업데이트를 위한 ADB / fastboot 설치와 사용

 

루팅과 펌웨어 업데이트를 위한 ADB / fastboot 설치와 사용

출처: https://wiki.lineageos.org/adb_fastboot_guide.html ADB란 무엇인가? ADB는 Android Debug Bridge의 약자로 개발 툴입니다. 안드로이드 디바이스와 개인 PC(맥, 윈도우, 리눅스)간에 통신을 도와주는 프..

qsurf.tistory.com

 

프로그램 준비

2종류 펌웨어 버전이 루팅 가능합니다. 다만 최신버전(06.10.04)에 리프레쉬 모드가 더 다양하고 좋으니 순정상태에서 업데이트 후 루팅 진행해주세요.

버전이 안맞을 경우 벽돌이 되니 주의해주세요. 벽돌 되면 스마트폰 분해 해서 살려야 합니다.

두 펌웨어 버전별 루팅용 파일 버전이 다르니 참조해주세요. 

 

  • A5 Firmware: 06.09.06

동일한 방법이지만 롬파일이 다릅니다.

https://onedrive.live.com/?cid=19db5749f1e9151c&id=19DB5749F1E9151C%215934&authkey=!AD9UE8XlDjST_zQ

 

 

  • A5 Firmware: 06.10.04 

아래 링크에서 A5 customizer R5 를 다운받습니다.

https://onedrive.live.com/?authkey=%21AAXJFrAr78430Ao&cid=19DB5749F1E9151C&id=19DB5749F1E9151C%215936&parId=root&action=defaultclick

받은 압축파일을 해제하고 qpst폴더에 들어가서 아래 png 이미지를 받아서 넣습니다. 그냥 비어있는 png 파일이에요.

(아래 파일 없을 경우 설치 시 에러 발생)

QPSTServer.png
0.00MB

이제 1_QualcommDriverSetup.exe  2_QPST.2.7.474.exe 두 파일을 설치해줍니다.

 

 

A5 개발자 모드 활성화 후 edl 모드 부팅

setting 에서 kernel version 을 검색해서 찾아간 후 kernel version을 여러번 탭하면 developer option(개발자 모드)가 활성화됩니다.

다시 setting 에서 developer options 을 검색해서 들어가고 USB debugging 옵션을 켜줍니다.

이제 adb 명령어로 연결 되어있는지 확인합니다.

아래 명령어를 입력하면 연결되어 있는지 확인 가능합니다.

adb devices

연결이 되어있으면 아래 명령어로 edl 모드로 부팅합니다.

adb reboot edl

edl 모드로 들어가면 A5 화면은 멈추고 벽돌이 된 것 처럼 아무것도 먹히지 않습니다.

이 상태에서 아까 설치한 QFIL 을 찾아서 실행합니다.

 

 

QFIL로 root file 플러쉬 

QFIL 이 실행되면 아래와 같이 옵션을 지정해줍니다.

시리얼 장치를 따로 사용하지 않으면 edl 모드로 들어간 A5의 시리얼 포트를 자동으로 잡아줍니다.

 

Select Build Type : Flat Build
Select Programmer : select
prog_emmc_firehose_8937_ddr_000bf0e1.mbn
LoadXML: rawprogram_000bf0e1_joygram

압축파일 내 rootkit 폴더 선택

 

Download 를 눌러주면 자동으로 writing 후 재부팅합니다.

 

이제 아래 magiskmanager 를 설치하면 됩니다.

아래 공식 사이트에서 받으면 됩니다. 현재 7.5.1 버전이 잘 사용 되는군요.

magiskmanager.com/downloading-magisk-manager

 

루팅이 완료되었습니다.

 

 

 

구글 어플 설치

Magisk manager 에서 모듈에 들어간 후 아래 A5용 gapps module 을 설치해주면 됩니다.

https://onedrive.live.com/?cid=19db5749f1e9151c&id=19DB5749F1E9151C%215907&authkey=!AHVpUKf9sHCcClE

 

 

이상입니다.

반응형

+ Recent posts