Android कमांड लाइन से हाल के एसएमएस संदेश पढ़ें


18

मैंने हाल ही में अपने Android की स्क्रीन को तोड़ा है। (फिर)

इसका टी-मोबाइल G2 है

मेरी व्यस्त प्रौद्योगिकी से संबंधित जीवन को बनाए रखने की कोशिश सभी के साथ मेरी कड़ी को खोए बिना कठिन है।

मैंने फोन को रूट किया है और यूएसबी डिबगिंग को पहले ही चालू कर दिया है।

क्या किसी को पता है कि मैं अपने हालिया एसएमएस की जांच कैसे करेगा, क्योंकि मैं एक नया फोन या एक प्रतिस्थापन स्क्रीन प्राप्त करने के लिए बचत करते हुए काम कर सकता हूं।

इस संबंध में किसी भी जानकारी के लिए धन्यवाद।

संपादित करें

एल्डेरैथिस का जवाब

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

संशोधित

साइक्लाइट स्थापित नहीं किया गया था

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>

बहुत-बहुत आभार

इस लिंक ने मदद की


ऐसा लगता है कि आपके पास sqlite3अपने डिवाइस पर बाइनरी नहीं है । मेरे उत्तर की पहली कड़ी में आपको इसे स्थापित करने में मदद करने के निर्देश हैं /system/binयहाँ बाइनरी के लिए एक लिंक है।
एल्डररैथिस

जवाबों:


10

यह वास्तव में बदसूरत है, लेकिन आप sqlite3डेटाबेस प्रविष्टियों को देखने के लिए कमांड लाइन से उन्हें पढ़ सकते हैं । आपको शायद इसके लिए एक बाइनरी खोदने की आवश्यकता होगी जब तक कि आपके पास एक कस्टम रॉम स्थापित न हो। इस स्टैक ओवरफ्लो प्रश्न में बाइनरी को स्थापित करने के लिए कुछ निर्देश हैं , और सुपरऑनक्लिक इसके साथ पैक किया गया है (बाइनरी की एक प्रति स्वयं यहां पाई जा सकती है )।

यदि आपको बाइनरी स्थापित करने की आवश्यकता है, तो 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);

*** चिह्नित लाइन के लिए ध्यान दें: यह आपके डिवाइस और एंड्रॉइड के संस्करण के आधार पर थोड़ा भिन्न हो सकता है यही कारण है कि मैंने इस cdकमांड को अलग से शामिल किया है । मुझे लगता है कि यह com.android.providers/telephony/databasesपुराने उपकरणों पर हुआ करता था, लेकिन मुझे याद नहीं है। lsयहाँ उचित पथ के लिए चारों ओर देखने के लिए उपयोग करें।


वैकल्पिक रूप से, आप .db फ़ाइल को अपने SD कार्ड पर कॉपी करने की कोशिश कर सकते हैं (या इसे खींच सकते हैं adb pull) और फिर इसे अपने कंप्यूटर पर sqlite के साथ पढ़ सकते हैं।


मैंने यह कोशिश की और ऐसा लगता है कि sqlite3 ने अनुमति से इनकार कर दिया है

यह बुरा मोड कहता है

@ जेसन: आपको उस निर्देशिका को पढ़ने के लिए रूट होना चाहिए (बस suपहले से निष्पादित करें )।
एल्डररैथिस

@ जेसन: एचएम, उपयोग chmod 0755 sqlite3, फिर। शायद स्टॉक chmodबाइनरी +xपैरामीटर को पसंद नहीं करता है ।
एल्डररैथिस

जैसे ही मैं सु को अंजाम देता हूं। यह ऐसे कार्य करता है जैसे कोई आज्ञा नहीं है

3

एल्डररैथिस से ऊपर सुंदर संकेत के लिए धन्यवाद, मैं बस करता हूं

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

मेरे रूट प्रॉम्प्ट से मेरे एसएमएस पढ़ने के लिए।

चूंकि मेरे पास sqlite3 नहीं था, इसलिए मुझे पहली बार इसे डाउनलोड करना पड़ा

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

या Google Play पर SQLite3 इंस्टॉलर देखें (यदि आप ड्रॉपबॉक्स स्रोत पर भरोसा नहीं करते हैं)।


1
उस बाइनरी के लिए एक dl.dropbox.com URL सुरक्षित महसूस नहीं करता है। क्या आप एक आधिकारिक स्रोत की आपूर्ति कर सकते हैं?
pzkpfw

1

यदि आप केवल प्रेषक और संदेश ( इस उत्तर में ) की तुलना में अधिक विवरण में रुचि रखते हैं , तो मुझे इस विषय पर एक अच्छा लेख मिला है: Android में Sqlite डेटाबेस से सीधे एसएमएस पढ़ें । यह भी देखें: संदेश डेटा संरचना

इससे भी बेहतर, Github पर एक नज़र डालें: ANDROID-SMS पायथन में लिखा गया एक उपकरण है जो सभी एसएमएस संदेशों को पुनर्प्राप्त करता है और उन्हें प्रदान किए गए आंकड़ों के साथ एसएमएस वार्तालापों में व्यवस्थित करता है। यह सभी एमएमएस संदेशों को पुनर्प्राप्त भी करता है और उन्हें संबंधित फाइलों के साथ एमएमएस वार्तालापों में व्यवस्थित करता है। मैंने खुद इसे (अभी तक) आज़माया नहीं है (बस कुछ मिनट पहले पाया), लेकिन यह बहुत साफ लगता है।

बेशक, यह प्रोग्राम सीधे एंड्रॉइड डिवाइस पर काम नहीं करता है - लेकिन इसके बजाय आपके कंप्यूटर पर (जहां इसे पायथन के लिए SQLite3 के साथ Python 2.7 की आवश्यकता है)। इसलिए आपको पहले डिवाइस से डेटाबेस को खींचने की आवश्यकता होगी। सभी आवश्यक कदम परियोजना के जीथुब मुख्य पृष्ठ पर वर्णित हैं।


0

मेरे द्वारा खोजा गया एक अन्य समाधान फोन पर एक ऐप का उपयोग करता है जो एसएमएस पर प्रतिक्रिया करता है और इसे एक फाइल में सहेजता है जिसे आप एडीबी के साथ पढ़ सकते हैं।

  • किसी भी टास्कर-जैसे ऐप को स्थापित करें, मैंने इसे ई-रोबोट के साथ बनाया
  • नई कमांड बनाएँ
  • कार्यक्रम जोड़ें Contact=>SMS
  • क्रिया जोड़ें Memory=>Write file, वहां आप हर बार या एक ही फाइल को अलग करने वाले के साथ एसएमएस को एक नई फ़ाइल में सहेज सकते हैं। वैसे भी इसे एडीबी के माध्यम से / sdcard या सुलभ किसी भी पथ पर सहेजें।
  • ADB के साथ उस पथ की निगरानी करें और एसएमएस सामग्री पढ़ें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.