코딩게시판

카링킷 Android 백버튼(Back Button) 자동 유지 구성 가이드

작성자 정보

  • 최고관리자 작성
  • 192.♡.0.1 아이피
  • 작성일

컨텐츠 정보


  • 링크

  • 첨부


  • 본문

    카링킷 Android 백버튼(Back Button) 자동 유지 구성 가이드


    사용앱

    3232235521_1780029255.9891.png


    언제 어디서나 살아지지 않은 백버튼

    3232235521_1780029354.4233.png


    최근앱에서 모두삭제후 살아 지지 않는 백버튼  > 동작 조건에 따라 지워 짐

    3232235521_1780029376.2929.png


    재부팅후 살아 있는 백버튼

    3232235521_1780029415.8945.png


    사전 설치앱 기본 툴 조건

    >>> 패키지이름을  확인 앱입니다 >> 이사진 정보

    3232235521_1780029920.8846.png



    사용중인 백 버튼 입니다 >> 패키지 이름을 메모 하여 설정시 참조 적용

    3232235521_1780029836.564.png

    패키지 이름을 메모 하여 설정시 참조 적용

    3232235521_1780029991.1377.png


    간단 접근성유지 방법으로 설정 하기

    3232235521_1780029885.4194.png


    간단 접근성유지 방법으로 설정 하기 >> 설정 >>

    3232235521_1780030066.1963.png


    간단 접근성유지 방법으로 설정 하기 >> 설정 >> 접근성 유지 설정

    3232235521_1780030085.9847.png


    간단 접근성유지 방법으로 설정 하기 >> 설정 >> 백버튼 check

    3232235521_1780030109.6466.png


    목표 >>  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 표시가 사라질 수 있음

    • 그러나 접근성 서비스는 자동 유지됨

    • 앱 실행 시 다시 표시됨

    따라서 가장 중요한 것은

    접근성 서비스 유지
    

    입니다.


    최종 결론

    실제 영향도가 큰 순서

    1. 접근성 서비스 자동 ON

    settings put secure accessibility_enabled 1
    
    settings put secure enabled_accessibility_services ...
    
    1. boot_completed 자동 실행

    /vendor/etc/init/backbutton.rc
    
    1. backbutton.sh 반복 유지

    while true
    
    1. RUN_IN_BACKGROUND

    2. 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




    첨부 파일을 스킨보드에 구성 PDF보기( W:\g5\skin\board\BS4-Basic-Webzine_11q_pdf_php82\view.skin.php + view_pdf.php구성)



    관련자료

    댓글 1

    최고관리자님의 댓글

    • 최고관리자
    • 아이피 192.♡.0.1
    • 작성일
    adb핵

    최근글


    새댓글