Android Son SMS mesajlarını komut satırından okuma


18

Son zamanlarda Android ekranımı kırdım. (Tekrar)

Bu bir T-Mobile G2

Teknolojiyle ilgili yoğun hayatımı sürdürmeye çalışmak, herkesle bağlantımı kaybetmeden yeterince zor.

Telefonu köklendirdim ve USB Hata Ayıklama özelliğini zaten açtım.

Herkes yeni SMS veya yeni bir ekran almak için kaydederken ben iş yetişmek böylece adb kabuk benim son SMS Messaged kontrol ediyorum biliyor mu.

Bununla ilgili bilgisi olan herkese teşekkürler.

DÜZENLE

Eldarerathis kullanıcısının yanıtı

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
$

cant chmod dosya. nerede olduğunu biliyor musun?

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

su beni sadece temel komutlarla terk ediyor

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

Düzeltilmiş

sqlite kurulmadı

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>

Ayrıca veritabanına erişmek için root olmam gerekiyordu.

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>

Çok teşekkürler eldarerathis

Bu Bağlantı Yardımcı Oldu


sqlite3Cihazınızda ikili program yok gibi görünüyor . Cevabımdaki ilk bağlantı, onu kurmanıza yardımcı olacak talimatlara sahip /system/bin. İşte ikilinin kendisine bir bağlantı .
eldarerathis

Yanıtlar:


10

Bu gerçekten çirkindir, ancak sqlite3veritabanı girişlerini görüntülemek için bunları komut satırından okuyabilirsiniz . Yüklü özel bir ROM'unuz yoksa muhtemelen bunun için bir ikili dosya kazmanız gerekir. Bu Yığın Taşma sorusunda bahsedilen ikili dosyayı yüklemek için bazı talimatlar vardır ve SuperOneClick onunla birlikte gelir (ikili dosyanın bir kopyası burada bulunabilir ).

İkili kurmanız gerekiyorsa mount, /systembölümünüzün fiziksel olarak nerede bulunduğunu ( /dev/block/mtdblock3örneğin benimki ) belirlemek için (parametresiz) kullanın . Ardından yukarıdaki ilk bağlantıdaki talimatları izleyin ve komutla okuma / yazma modunda yeniden monte ederek başlayın:

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

Sahip olduktan sonra bir an sqlite3açmak isteyip istemediğinizi kullanarak root'a adb shellgeçin suve aşağıdakileri yapın:

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

Bu, tüm okunmamış iletiler için tablodaki tüm satırları alır. Tablodaki sütunlar bu şekilde tanımlanır (böylece kırpabilirsiniz 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);

*** İşaretli çizgi için not: cihazınıza ve Android sürümüne bağlı olarak bu biraz farklı olabilir, bu yüzden bu cdkomutu ayrı olarak ekledim. Ben düşünüyorum eskisi com.android.providers/telephony/databaseseski cihazlarda ama oldukça hatırlamıyorum. lsBurada doğru yolu bulmak için kullanın .


Alternatif olarak, .db dosyasını SD kartınıza kopyalamayı (veya çekerek adb pull) ve sonra sqlite ile bilgisayarınızda okumayı deneyebilirsiniz .


Bunu denedim ve sqlite3 izin verilmedi

kötü mod diyor

@Jason: Bu dizini okumak için root olmanız gerekir (sadece suönceden çalıştırın ).
eldarerathis

@ Jason: Hım, kullan chmod 0755 sqlite3o zaman. Belki hisse senedi chmodikili +xparametresini beğenmez .
eldarerathis

en kısa sürede su idam. komut yokmuş gibi davranır

3

Yukarıdaki eldarerathis güzel ipucu sayesinde, ben sadece

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

SMS'leri kök istemimden okumak için.

Ben sqlite3 olmadığı için, ilk zorunda indirmek ile

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

Veya Google Play'de SQLite3 yükleyicisine bakın (dropbox kaynağına güvenmiyorsanız).


1
Bu ikili dosya için bir dl.dropbox.com URL'si güvenli hissetmez. Resmi bir kaynak sağlayabilir misiniz?
pzkpfw

1

Gönderen ve mesajdan daha fazla ayrıntıyla ilgileniyorsanız ( bu cevapta olduğu gibi ), konuyla ilgili güzel bir makale buldum: SMS'i doğrudan Android'deki Sqlite veritabanından okuyun . Ayrıca bkz: İleti veri yapısı .

Daha da iyisi, Github'a bir göz atın: ANDROID-SMS , Python'da yazılmış ve tüm SMS mesajlarını kurtarır ve sağlanan istatistiklerle SMS Sohbetleri halinde düzenleyen bir araçtır . Ayrıca tüm MMS mesajlarını kurtarır ve ilgili dosyalarla birlikte MMS Sohbetleri şeklinde düzenler. Ben (henüz) kendimi denedim (sadece birkaç dakika önce buldum), ama oldukça temiz görünüyor.

Tabii ki, bu program doğrudan Android cihazında çalışmaz - bunun yerine bilgisayarınızda (Python için SQLite3 ile Python 2.7 gerektirir). Bu yüzden önce veritabanını cihazdan almanız gerekir. Gerekli tüm adımlar projenin Github ana sayfasında açıklanmaktadır.


0

İcat ettiğim başka bir çözüm, telefonda SMS'e tepki veren ve ADB ile okuyabileceğiniz bir dosyaya kaydeden bir uygulama kullanıyor.

  • Tasker benzeri herhangi bir uygulamayı yükleyin, E-Robot ile yaptım
  • Yeni komut oluştur
  • Etkinlik ekle Contact=>SMS
  • Eylem ekleyin Memory=>Write file, orada SMS her zaman yeni bir dosyaya veya ayırıcı ile aynı bir dosyaya kaydedebilirsiniz. Her neyse / sdcard'a veya ADB üzerinden erişilebilen herhangi bir yola kaydedin.
  • ADB ile bu yolu izleyin ve SMS içeriğini okuyun.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.