Android 명령 행에서 최근 SMS 메시지 읽기


18

최근에 Android 화면이 깨졌습니다. (다시)

T- 모바일 G2

바쁜 기술 관련 생활을 유지하는 것은 모든 사람과의 관계를 잃지 않으면서도 어려운 일입니다.

전화를 루팅하고 USB 디버깅이 이미 켜져 있습니다.

누구든지 adb 쉘에서 최근 SMS 메시지를 확인하는 방법을 알고 있으므로 새 전화 또는 교체 화면을 얻기 위해 저장하는 동안 작업을 계속할 수 있습니다.

이에 관한 정보가있는 사람에게 감사합니다.

편집하다

eldarerathis에 대한 답변

C:\android-sdk\platform-tools>adb shell
$ cd /data/data/com.android.providers.telephony/databases
cd /data/data/com.android.providers.telephony/databases
$ sqlite3 mmssms.db
sqlite3 mmssms.db
sqlite3: permission denied
$

파일을 chmod 할 수 없습니다. 실제로 어디에 있는지 아십니까?

$ chmod +x sqlite3
chmod +x sqlite3
Bad mode
$

su는 기본 명령 만 남깁니다.

$ su
su
# cd /data/data/com.android.providers.telephony/databases
cd /data/data/com.android.providers.telephony/databases
# sqlite3 mmssms.db
sqlite3 mmssms.db
sqlite3: not found
#

수정

sqlite가 설치되지 않았습니다

C:\android-sdk\platform-tools>adb shell
$ cd /data/data/com.android.providers.telephony/databases
cd /data/data/com.android.providers.telephony/databases
$ sqlite3 mmssms.db
sqlite3 mmssms.db
SQLite version 3.6.22
Enter ".help" for instructions
sqlite>

또한 데이터베이스에 액세스하려면 루트가 필요했습니다.

C:\android-sdk\platform-tools>adb shell
$ su
# cd /data/data/com.android.providers.telephony/databases
cd /data/data/com.android.providers.telephony/databases
# sqlite3 mmssms.db
sqlite3 mmssms.db
SQLite version 3.6.22
Enter ".help" for instructions
sqlite>

많은 eldarerathis 감사합니다

이 링크가 도움이되었습니다


sqlite3기기에 바이너리 가없는 것 같습니다 . 내 답변의 첫 번째 링크에는 설치에 도움이되는 지침이 있습니다 /system/bin. 바이너리 자체에 대한 링크 입니다.
eldarerathis

답변:


10

이것은 실제로 추악하지만 sqlite3데이터베이스 항목을 보는 데 사용하여 명령 줄에서 읽을 수 있습니다 . 커스텀 ROM이 설치되어 있지 않으면 바이너리를 파야 할 것입니다. 이 스택 오버플로 질문에 해당 바이너리를 설치하기위한 몇 가지 지침 있으며 SuperOneClick 과 함께 패키지로 제공됩니다 (바이너리 자체의 사본은 여기 에서 찾을 수 있음 ).

바이너리를 설치해야하는 경우 mount(매개 변수없이)를 사용하여 /system파티션이 실제로 어디에 있는지 확인하십시오 ( /dev/block/mtdblock3예 : 광산은 ). 그런 다음 위의 첫 번째 링크의 지시 사항을 따르고 다음 명령을 사용하여 읽기 / 쓰기 모드로 다시 마운트하십시오.

mount -o rw,remount /your/system/partition /system

당신은 일단 sqlite3당신이를 열고 자하는 것 adb shell와 루트로 전환 한 su후 다음을 수행 :

# cd /data/data
cd /data/data
# cd com.android.providers.telephony/databases ***
cd com.android.providers.telephony/databases
# sqlite3 mmssms.db
sqlite3 mmssms.db
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> SELECT * FROM sms WHERE read=0;

읽지 않은 모든 메시지에 대해 테이블에서 모든 행을 가져옵니다. 테이블의 열은 이와 같이 정의되므로 (을자를 수 있습니다 SELECT) :

CREATE TABLE sms (_id INTEGER PRIMARY KEY,thread_id INTEGER,address TEXT,
  person INTEGER,date INTEGER,protocol INTEGER,read INTEGER DEFAULT 0,
  status INTEGER DEFAULT -1,type INTEGER,reply_path_present INTEGER,
  subject TEXT,body TEXT,service_center TEXT,locked INTEGER DEFAULT 0,
  error_code INTEGER DEFAULT 0,seen INTEGER DEFAULT 0);

*** 표시된 줄에 대한 참고 : 기기 및 Android 버전에 따라 약간 다를 수 있으므로이 cd명령을 별도로 포함 시켰습니다 . 나는 생각 예전 com.android.providers/telephony/databases구형 장치에 그러나 나는 확실히 기억하지 않는다. ls올바른 경로를 찾는 데 사용 하십시오.


또는 .db 파일을 SD 카드에 복사하거나 adb pull로 끌어서 sqlite를 사용하여 컴퓨터에서 읽을 수도 있습니다.


나는 이것을 시도하고 sqlite3 권한이 거부 된 것 같습니다

그것은 나쁜 모드를 말한다

@Jason : 해당 디렉토리를 읽으려면 루트 여야합니다 ( su사전 실행 ).
eldarerathis

@Jason : 흠 chmod 0755 sqlite3. 재고 chmod바이너리가 +x매개 변수를 좋아하지 않을 수도 있습니다.
eldarerathis

내가 su를 실행하자마자. 명령이없는 것처럼 작동합니다

3

eldarerathis의 위의 아름다운 힌트 덕분에, 나는 단지

DB=/data/data/com.android.providers.telephony/databases/mmssms.db
echo 'select address,body from sms;' | ./sqlite3 -csv $DB 

루트 프롬프트에서 SMS를 읽습니다.

sqlite3이 없었기 때문에 먼저 다운로드 해야했습니다.

curl http://dl.dropbox.com/u/16958605/sqlite3
chmod a+x sqlite3

또는 Dropbox 소스를 신뢰할 수없는 경우 Google Play에서 SQLite3 설치 관리자 를 참조하십시오 .


1
해당 바이너리에 대한 dl.dropbox.com URL은 안전하지 않습니다. 공식 소스를 제공 할 수 있습니까?
pzkpfw

1

보낸 사람과 메시지 ( 이 답변 에서와 같이)보다 자세한 내용에 관심이있는 경우 Android의 Sqlite 데이터베이스에서 직접 SMS 읽기 주제에 대한 좋은 기사를 찾았습니다 . 메시지 데이터 구조를 참조하십시오 .

더 좋은 점은 Github를 살펴보십시오. ANDROID-SMS 는 Python으로 작성된 도구로 모든 SMS 메시지복구하고 제공된 통계를 사용하여 SMS 대화로 구성합니다. 또한 모든 MMS 메시지를 복구하고 각 파일과 함께 MMS 대화로 구성합니다. 나는 (아직도) 직접 시도하지는 않았지만 (몇 분 전에 찾았습니다) 꽤 깔끔하게 들립니다.

물론이 프로그램은 Android 기기에서 직접 작동하지 않고 컴퓨터 (Python 용 SQLite3과 Python 2.7이 필요한 컴퓨터)에서 직접 작동하지 않습니다. 따라서 먼저 장치에서 데이터베이스를 가져와야합니다. 필요한 모든 단계는 프로젝트의 Github 메인 페이지에 설명되어 있습니다.


0

내가 발명 한 또 다른 솔루션은 SMS에서 반응하여 ADB로 읽을 수있는 파일에 저장하는 앱을 전화에서 사용합니다.

  • Tasker와 같은 앱을 설치하고 E-Robot으로 만들었습니다.
  • 새로운 명령 만들기
  • 이벤트 추가 Contact=>SMS
  • 작업을 추가 Memory=>Write file하면 매번 새 파일이나 구분 기호가있는 동일한 파일에 SMS를 저장할 수 있습니다. 어쨌든 / sdcard 또는 ADB를 통해 액세스 가능한 경로에 저장하십시오.
  • ADB로 해당 경로를 모니터링하고 SMS 내용을 읽으십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.