Android Baca pesan SMS terbaru dari baris perintah

18

Saya baru-baru ini merusak layar Android saya. (Lagi)

Ini adalah T-Mobile G2

Mencoba untuk mengikuti kehidupan sibuk saya yang berhubungan dengan teknologi sudah cukup sulit tanpa kehilangan hubungan saya dengan semua orang.

Saya telah melakukan root pada ponsel dan USB Debugging sudah dihidupkan.

Adakah yang tahu bagaimana saya akan mengecek SMS terbaru saya Pesan dari adb shell sehingga saya bisa tetap bekerja sementara saya menabung untuk mendapatkan ponsel baru atau layar pengganti.

Terima kasih untuk siapa pun yang memiliki informasi mengenai ini.

EDIT

Respon terhadap 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
$

tidak dapat chmod file. apakah kamu tahu sebenarnya dimana itu?

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

su meninggalkan saya dengan hanya perintah dasar

$ 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
#

Dikoreksi

sqlite tidak diinstal

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>

Juga untuk Mengakses database saya perlu menjadi root.

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>

Terima kasih banyak eldarerathis

Tautan Ini Membantu

The Lazy Coder
sumber
Sepertinya Anda tidak memiliki sqlite3biner di perangkat Anda. Tautan pertama dalam jawaban saya memiliki instruksi untuk membantu Anda menginstalnya /system/bin. Berikut ini tautan ke biner itu sendiri.
eldarerathis

Jawaban:

10

Ini benar-benar jelek, tetapi Anda dapat membacanya dari baris perintah dengan menggunakan sqlite3untuk melihat entri basis data. Anda mungkin perlu menggali biner untuk ini kecuali Anda menginstal ROM khusus. Ada beberapa instruksi untuk menginstal kata biner dalam pertanyaan Stack Overflow ini , dan SuperOneClick dikemas dengan itu (salinan biner itu sendiri dapat ditemukan di sini ).

Jika Anda perlu menginstal biner, gunakan mount(tanpa parameter) untuk menentukan di mana letak /systempartisi Anda secara fisik (milik saya /dev/block/mtdblock3, misalnya). Kemudian ikuti instruksi pada tautan pertama di atas, dan mulai dengan remounting dalam mode baca / tulis dengan perintah:

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

Setelah Anda memiliki, sqlite3Anda ingin membuka adb shell, beralih ke root dengan su, dan kemudian lakukan hal berikut:

# 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;

Ini akan menarik semua baris dari tabel untuk semua pesan yang belum dibaca. Kolom dalam tabel didefinisikan demikian (sehingga Anda dapat memotongnya 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);

*** Catatan untuk baris yang ditandai: ini mungkin sedikit berbeda tergantung pada perangkat Anda dan versi Android yang mengapa saya memasukkan cdperintah ini secara terpisah. Saya pikir itu dulu com.android.providers/telephony/databasesdi perangkat yang lebih tua tapi saya tidak begitu ingat. Gunakan lsuntuk melihat-lihat jalur yang tepat di sini.


Atau, Anda dapat mencoba menyalin file .db ke kartu SD Anda (atau menariknya dengan adb pull) dan kemudian membacanya di komputer Anda dengan sqlite.

eldarerathis
sumber
Saya mencoba ini dan tampaknya sqlite3 ditolak
katanya mode buruk
@Jason: Anda harus root untuk membaca direktori itu (jalankan saja susebelumnya).
eldarerathis
@Jason: Hm, gunakan chmod 0755 sqlite3, lalu. Mungkin chmodbiner saham tidak suka +xparameternya.
eldarerathis
segera setelah saya mengeksekusi su. itu bertindak seperti tidak ada perintah
3

Berkat petunjuk indah dari eldarerathis di atas, aku melakukannya

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

untuk membaca SMS saya dari prompt root saya.

Karena saya tidak punya sqlite3, saya harus mengunduhnya terlebih dahulu

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

Atau lihat penginstal SQLite3 di Google Play (jika Anda tidak mempercayai sumber dropbox).

pengguna23548
sumber
1
URL dl.dropbox.com untuk biner itu tidak terasa aman. Bisakah Anda menyediakan sumber resmi?
pzkpfw
1

Jika Anda tertarik pada detail lebih dari sekadar pengirim dan pesan (seperti dalam jawaban ini ), saya baru saja menemukan artikel yang bagus tentang topik ini: Baca SMS langsung dari database Sqlite di Android . Lihat juga: Struktur data pesan .

Lebih baik lagi, lihat Github: ANDROID-SMS adalah alat yang ditulis dalam Python yang memulihkan semua pesan SMS dan mengaturnya ke dalam Percakapan SMS dengan statistik yang disediakan. Ini juga memulihkan semua pesan MMS dan mengaturnya ke dalam Percakapan MMS, dengan file masing-masing. Saya belum mencobanya (belum) sendiri (baru saja menemukannya beberapa menit yang lalu), tetapi kedengarannya cukup rapi.

Tentu saja, program ini tidak bekerja pada perangkat Android secara langsung - tetapi sebaliknya di komputer Anda (di mana ia membutuhkan Python 2.7 dengan SQLite3 untuk Python). Jadi, Anda harus terlebih dahulu menarik basis data dari perangkat. Semua langkah yang diperlukan dijelaskan di halaman utama Github proyek.

Izzy
sumber
0

Solusi lain yang saya temukan menggunakan aplikasi pada ponsel yang bereaksi pada SMS dan menyimpannya ke file yang dapat Anda baca dengan ADB.

  • Instal aplikasi seperti Tasker, saya membuatnya dengan E-Robot
  • Buat perintah baru
  • Tambahkan acara Contact=>SMS
  • Tambahkan tindakan Memory=>Write file, di sana Anda dapat menyimpan SMS ke file baru setiap kali atau yang sama dengan pemisah. Pokoknya simpan ke / sdcard atau jalur apa pun yang dapat diakses melalui ADB.
  • Pantau jalur itu dengan ADB dan baca konten SMS.
Fr0sT
sumber