iOS 버전의 원신에서 켜자마자 클립보드를 복사해갔다는 "Safari에서 붙여넣은 원신" 메시지가 뜬 이미지가 돌아다녔는데요. 이 메시지는 iOS 14에서 추가된 클립보드 관련 시스템 메시지로 어떤 앱이 다른데서 복사한 클립보드 내용을 자기 앱으로 가져갔음을 의미해요. 그리고 iOS 14부터 등장한 이 메시지를 통해 iOS의 여러 앱에서 클립보드를 복사해갔다는 것이 들통나 시끄러웠기도 했어요. 그러면 하나. 안드로이드나 PC판에도 그러지 않을까 싶어 불안감이 커지실 수도 있을 것 같아요. 다행히 안드로이드에서는 안드로이드 10.0 (API 29) 부터 기본 키보드 외에는 포커스를 갖지 않은 백그라운드 앱이 클립보드를 읽어갈 수 없으니 기본적인 부분은 안심하셔도 되요. 그러면... 이번 경우처럼 포어그라운드, 현재 메인으로 띄워져있는 앱의 경우는 어떨까요? 아쉽게도 이에 대한 메시지(iOS처럼 "A앱에서 붙여넣은 B앱")나 이를 막는 제어 기능은 없더라구요. 😂😂 그렇다고 낙심하지 마세요. 3년전 xda 글 에 따르면 adb 명령을 통해 클립보드 접근을 제어할 수 있다고 하니까요. adb shell 을 실행하시려면 PC에서는 여기를 눌러 윈도, 맥, 리눅스 용으로 platform tools를 내려받아 실행할 수 있도록 압축을 풀어두셔야 하고 안드로이드 기기에서는 USB 디버깅을 켜두셔야 명령 실행이 가능해요. 이 부분은 검색을 통해 확인하실 수 있는데 대략적으로는 설정 앱의 기기 정보에서 '빌드 번호'를 8번 이상 누르고 화면 잠금(설정된 경우에만)을 풀어주시면 되요. 압축이 풀린 폴더에 명령 프롬프트를 여시면 되는데, 주소 표시창에서 cmd를 입력한 뒤 엔터를 누르시면 그 폴더의 자리의 명령 프롬프트가 열려 편해요. 그리고 한 번 클립보드 접근하는 앱이 얼마나 많은지 확인해볼까요. 개발자가 READ_CLIPBOARD 권한을 선언한 앱은 설치 후 이 권한이 자동으로 주어져요. 접근 허용된 앱> ad...
쓰던 커스텀롬에서 알림막대 만지면 USB 연결이 풀리는게 개조된 SystemUI.apk 하나 때문인걸 찾아냈어요.
두 달동안 고민하다 어제, smali 코드란걸 처음 봤어요.
Java 로 짜여진 소스 반, 어셈블리 반..이에요.@.@...아우으..
와이파이를 작동시키면 adb 클래스에 정의된 함수들이 이걸 느끼고, 와이파이에 연결 되거나 풀릴 때마다 USB디버깅을 들었다 놨다 해요. 와이파이 연결 안되어있을 때 강제로 Wireless ADB를 끄기 위해서에요. 그래서 이 부분을 지웠는데 시스템 시작후 와이파이 켜고 끌 때 디버깅이 항상 켜지며 연결이 엉망이 되지 않았어요 ><
아마도.. 알림막대 만질 때 마다 네트워크 상태를 확인하나봐요. 비효율적.. 빠른 설정 탭 열 때 확인했으면 나을텐데 말이에요. ;-;
-------------
덧> 함수 하나에 .locals 2 가 v0 v1 즉, 변수 둘 인걸 보고 코드를 비우고 .locals 0 ~ return-void 로 전부 마무리시켰는데 (WADB 멸망을 바라며..) 알림막대가 전혀 나타나지 않고 부팅로고에서 멈췄어요.
코드 안에 persist.system.adb 였던가.. 그거 전부 0으로 하면.. USB 디버깅을 수동으로 붙여줘도 무조건 풀려서 (..) 엉망이 되는건 같았어요. 그래서 다른 방법을 찾은게 위에 적은거에요. WADB 기능도 살리고 USB연결 엉망도 고쳤죠 /ㅅ/
아, 함수나 변수 뒤에 붙는 알파벳은 종류나 반환값이래요.
I integer
Z boolean
V void
2012-02-23
--------------------
이렇게 풀어서 개조하는거 방해하려고 proguard minify 여러가지 쓰기도 하죠. 요즘은 툴이 좋아져서 java로 뽑을수도 있다고 하니 스미싱 같은거 실행하지 말고 뜯어보고 싶은 생각은 드네요 ' ')+
2018-12-16
Comments
Post a Comment