카링킷 Android 백버튼(Back Button) 자동 유지 구성 가이드
작성자 정보
- 최고관리자 작성
- 192.♡.0.1 아이피
- 작성일
컨텐츠 정보
- 83 조회
- 1 댓글
- 목록
본문
카링킷 Android 백버튼(Back Button) 자동 유지 구성 가이드
사용앱
언제 어디서나 살아지지 않은 백버튼
최근앱에서 모두삭제후 살아 지지 않는 백버튼 > 동작 조건에 따라 지워 짐
재부팅후 살아 있는 백버튼
사전 설치앱 기본 툴 조건
>>> 패키지이름을 확인 앱입니다 >> 이사진 정보
사용중인 백 버튼 입니다 >> 패키지 이름을 메모 하여 설정시 참조 적용
패키지 이름을 메모 하여 설정시 참조 적용
간단 접근성유지 방법으로 설정 하기
간단 접근성유지 방법으로 설정 하기 >> 설정 >>
간단 접근성유지 방법으로 설정 하기 >> 설정 >> 접근성 유지 설정
간단 접근성유지 방법으로 설정 하기 >> 설정 >> 백버튼 check
목표 >> back button 의 구성 부팅시 유지 되게 adb shell 이용 설정
다음 상황에서도 Back Button 접근성이 자동 유지되도록 구성
차량 재부팅
카링킷 재부팅
최근앱 전체 지우기
접근성 서비스 OFF
1. 사전 준비
PC 준비
adb platform-tools 설치
USB 또는 TCP ADB 연결
확인
adb devices
2. ADB Root 활성
adb root
확인
adb root
정상
adbd is already running as root
3. OverlayFS 활성
adb remount
정상 예
Using overlayfs for /vendor
remount succeeded
확인
adb shell "mount | grep vendor"
정상
overlay on /vendor type overlay (rw,...
4. 접근성 강제 활성
BackButton 서비스명
nu.back.button/nu.back.button.service.BackButtonService
수동 활성
adb shell settings put secure accessibility_enabled 1
adb shell settings put secure enabled_accessibility_services nu.back.button/nu.back.button.service.BackButtonService
확인
adb shell "dumpsys accessibility | grep BackButtonService"
정상
Enabled services:
nu.back.button/nu.back.button.service.BackButtonService
5. 핵심 권한 부여
가장 중요한 권한
WRITE_SECURE_SETTINGS 계열
접근성 자동 ON 유지에 사용
추가 권한
adb shell appops set nu.back.button RUN_IN_BACKGROUND allow
adb shell appops set nu.back.button WAKE_LOCK allow
adb shell appops set nu.back.button WRITE_SETTINGS allow
6. 자동 복구 스크립트 작성
PC
F:\backbutton.sh
내용
#!/system/bin/sh
echo $$ > /data/local/tmp/backbutton.pid
sleep 20
while true
do
settings put secure accessibility_enabled 1
settings put secure enabled_accessibility_services \
nu.back.button/nu.back.button.service.BackButtonService
sleep 30
done
역할
접근성 OFF 복구
서비스 재등록
30초 주기 유지
7. 스크립트 업로드
adb push F:\backbutton.sh /data/adb/service.d/backbutton.sh
adb shell chmod 755 /data/adb/service.d/backbutton.sh
8. 부팅 자동 실행 구성
PC
F:\backbutton.rc
내용
on property:sys.boot_completed=1
exec_background root root -- /system/bin/sh /data/adb/service.d/backbutton.sh
9. RC 파일 업로드
adb root
adb remount
adb push F:\backbutton.rc /vendor/etc/init/backbutton.rc
adb shell chmod 644 /vendor/etc/init/backbutton.rc
확인
adb shell ls -l /vendor/etc/init/backbutton.rc
10. 재부팅 테스트
adb reboot
대기
adb wait-for-device
확인
adb shell "cat /data/local/tmp/backbutton.pid"
정상
11963
11. 접근성 자동 유지 확인
adb shell "dumpsys accessibility | grep BackButtonService"
정상
button:{
nu.back.button/nu.back.button.service.BackButtonService
}
12. 최근앱 지우기 대응
실제 테스트 결과
최근앱 제거 시 BackButton 표시가 사라질 수 있음
그러나 접근성 서비스는 자동 유지됨
앱 실행 시 다시 표시됨
따라서 가장 중요한 것은
접근성 서비스 유지
입니다.
최종 결론
실제 영향도가 큰 순서
접근성 서비스 자동 ON
settings put secure accessibility_enabled 1
settings put secure enabled_accessibility_services ...
boot_completed 자동 실행
/vendor/etc/init/backbutton.rc
backbutton.sh 반복 유지
while true
RUN_IN_BACKGROUND
WAKE_LOCK
현재 구성으로
재부팅 후 자동 실행
접근성 자동 복구
서비스 자동 유지
까지 성공 확인 완료.
지금까지 테스트한 내용 기준으로는 이 버전이
가장 현실적인 자동 복구형 BackButton 구성입니다.
#!/system/bin/sh
echo $$ > /data/local/tmp/backbutton.pid
sleep 20
while true
do
settings put secure accessibility_enabled 1
settings put secure enabled_accessibility_services \
nu.back.button/nu.back.button.service.BackButtonService
dumpsys window windows | grep -i "nu.back.button.activity.MainActivity" >/dev/null 2>&1
if [ $? -ne 0 ]; then
am start -n nu.back.button/.activity.MainActivity
fi
sleep 10
done동작 설명
1. PID 저장
echo $$ > /data/local/tmp/backbutton.pid
현재 실행 중인 스크립트 PID 저장
확인:
adb shell cat /data/local/tmp/backbutton.pid
예:
11963
자동실행 여부 확인용
2. 부팅 안정화 대기
sleep 20
카링킷 부팅 직후에는:
PackageManager
Accessibility
WindowManager
가 아직 초기화 중일 수 있음
20초 대기 후 시작
3. 접근성 강제 ON
settings put secure accessibility_enabled 1
효과:
접근성 OFF → ON 복구
4. BackButton 서비스 등록
settings put secure enabled_accessibility_services \
nu.back.button/nu.back.button.service.BackButtonService
효과:
BackButton 접근성 서비스 자동 복구
확인:
adb shell "dumpsys accessibility | grep BackButtonService"
5. MainActivity 존재 확인
dumpsys window windows | grep -i "nu.back.button.activity.MainActivity"
현재 화면에:
MainActivity
가 존재하는지 검사
존재하면:
백버튼 앱 정상 동작 중
6. MainActivity 없으면 복구
if [ $? -ne 0 ]; then
am start -n nu.back.button/.activity.MainActivity
fi
다음 상황 복구:
최근앱 전체 삭제
앱 강제종료
메모리 정리
프로세스 종료
복구 동작:
MainActivity 자동 실행
7. 10초 주기 감시
sleep 10
즉
최대 10초 이내 자동 복구
실제 동작 시나리오
정상 상태
접근성 ON
MainActivity 존재
↓
아무 동작 안 함
최근앱에서 삭제
MainActivity 종료
↓
10초 후
am start MainActivity
↓
BackButton 복구
접근성 OFF
사용자 또는 시스템이 접근성 해제
↓
10초 후
accessibility_enabled=1
enabled_accessibility_services 재등록
↓
접근성 자동 복구
장점
재부팅 자동 실행
접근성 자동 복구
최근앱 삭제 자동 복구
앱 종료 자동 복구
단점
MainActivity가 설정 화면 역할도 함
따라서 복구 시 순간적으로 앱 화면이 보일 수 있습니다.
최종 평가
현재까지 확인한 카링킷 환경에서는:
접근성 유지 + MainActivity 감시
방식이 가장 안정적이며,
재부팅
최근앱 삭제
앱 종료
상황에 대응 가능한 최종 추천 버전입니다.
제목: 루팅 ADB Hack - Granting extra capabilities via the ADB tool
https://www.11q.kr/bbs/board.php?bo_table=cording&wr_id=173
관련자료
-
링크
-
이전
-
다음
최고관리자님의 댓글
- 최고관리자
- 아이피 192.♡.0.1
- 작성일