डिबगिंग के लिए एंड्रॉइड बूट-अप संदेश?


23

मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या एंड्रॉइड (यानी गैलेक्सी नेक्सस, नेक्सस एस, और / या मोटोरोला जूम) "बूट-अप" लॉग का उत्पादन करने के लिए किसी प्रकार की क्षमता के साथ आते हैं। (तरह तरह के लिनक्स बूट-अप स्क्रीन) यह पता लगाने में बेहद मददगार होगा कि क्रैश होने से पहले किसी का फोन बूट स्टेज में कितना मिलता है (जैसे कि फर्स्ट-स्टेज बूटलोडर, मेन बूटलोडर, फिर कर्नेल लोडिंग, आदि)। क्या किसी को पता है कि इस लॉग फ़ाइल को थूकने के लिए फोन को कैसे सक्षम करें या "वर्बोज़" बूट-अप मोड को सक्षम करें (और लिनक्स कंप्यूटर के टर्मिनल पर वास्तविक संदेश प्रिंट करें जो आपके पास फोन से जुड़ा है)?

मेरा फोन मेरे वर्तमान संशोधित निर्माण के साथ "बूट-लूप" में फंस गया है और यदि संभव हो तो मैं इसे डीबग करना चाहूंगा।

वैकल्पिक रूप से, किसी को भी किसी भी उपयोगी संसाधनों या ट्यूटोरियल के बारे में पता है जो समझाता है कि ऐसा करने के लिए फोन को आसानी से "हैक" कैसे करें (हार्डवेयर के साथ कोई गड़बड़ नहीं)? या ऐसे किसी भी मंच पर जहाँ मेरा सवाल पूछा गया हो, लेकिन अधिक अस्पष्ट रूप में?

यह हाल ही में एक निराशाजनक समस्या रही है, इसलिए किसी भी मदद की बहुत सराहना की जाएगी!


मुझे पता है कि यह लॉगकैट पर बहुत पहले लिखना शुरू कर देता है, लेकिन यह एक बार रिबूट होने के बाद साफ हो जाता है। जैसे ही यह "बूट एनीमेशन" दिखाता है (या शायद थोड़ी जल्दी भी) लिखना शुरू कर देना चाहिए।
रयान कॉनरेड

2
आप "adb" के बिना लॉगकैट का उपयोग कैसे करेंगे? Adb केवल तभी काम करता है जब फोन स्थिर अवस्था में हो, जो पूरे बिंदु का खंडन करता है जिसका मैं अनुमान लगाता हूं कि क्यों logcat मौजूद है (जो फोन को सफलतापूर्वक बूट करता है, टूल की ज्यादा जरूरत नहीं है)।
9XceptionThrower9

adb पहली सेवाओं में से एक है जो शुरू होती है। यदि आप बूट एनीमेशन देखते हैं, तो adb पहले से ही चल रहा है। जब आप पुनर्प्राप्ति मोड में होते हैं, तो adb भी उपलब्ध होता है।
रायन कॉनराड

ठीक है, मुझे यकीन नहीं है कि मैं बूट एनीमेशन देख रहा हूँ जिसके बारे में आप बात कर रहे हैं। बैटरी "चार्ज" प्रतीक के बाद, क्रैश होने से पहले फोन "सफेद" पर "Google" के साथ स्प्लैशस्क्रीन पर लटका हुआ है। उसके बाद कोई "एंड्रॉइड" स्प्लैशस्क्रीन या कोई बूट एनीमेशन नहीं है। इसलिए मुझे नहीं लगता कि ADB अभी तक काम करता है ...
9exceptionThrower9

जवाबों:


14

ऐसा करने के कुछ तरीके हैं:

  • cat /proc/last_kmsg > /sdcard/last_kernel_message_log.txt
  • dmesg > /sdcard/kernel_boot_log.txt
  • स्मार्ट फोन के साथ यूएसबी केबल में प्लग बंद। फिर adb logcatअपने विंडोज सीएमडी या लिनक्स टर्मिनल से कमांड जारी करें, यह डिवाइस के ऑन-लाइन आने का इंतजार करेगा, अब स्मार्ट-फोन को पावर देगा। Logcat को तब स्क्रॉल करना शुरू करना चाहिए।

चूँकि आपने यह पता लगाने में रुचि व्यक्त की थी कि क्रैश होने से पहले किसी का फ़ोन बूट अवस्था में कितना दूर हो जाता है , इसलिए उन तरीकों की मदद करनी चाहिए। बात यह है कि कर्नेल के लॉग (ऊपर दिखाए गए पहले दो तरीके) को हथियाने के लिए आपको बहुत तेज होना चाहिए।

मैं यह क्या करूँगा, मेरे आर्क लिनक्स बॉक्स पर, दो टर्मिनल विंडो, एक के लिए adb logcat, दूसरा, लॉग को पकड़ने के लिए मिनट लॉगकट स्क्रॉल करना शुरू कर देता है!

संपादित करें:

बीई जानते हैं, उपयोग करने के साथ मतभेद हैं adbऔर fastboot!

fastbootअलग तरीके से काम करता है, इसका उपयोग केवल छवियों को निर्दिष्ट विभाजन में चमकाने के लिए किया जाता है, और बूट-लोडर प्रक्रिया के साथ अधिक बंधा होता है, अर्थात, यह बूट-लोडर तंत्र को समझ सकता है। यह भी आवश्यक है कि:

  • विंडोज के तहत, 'प्रशासक' इसे निष्पादित करने का विशेषाधिकार देता है
  • लिनक्स के तहत, 'रूट' विशेषाधिकार

इसका कारण यह है क्योंकि यह हार्डवेयर के कुछ इनपुट / आउटपुट को बायपास करता है, और इस प्रकार, adbप्रोटोकॉल में "बात" नहीं करता है, बल्कि, यह सीधे बूट-लोडर को "बात" करना है। कुछ ऐसा जो एक सामान्य उपयोगकर्ता के रूप में नहीं किया जा सकता है। यहाँ के उपयोग के लिए मदद है fastboot

$ sudo fastboot
usage: fastboot [ <option> ] <command>

commands:
  update <filename>                        reflash device from update.zip
  flashall                                 flash boot + recovery + system
  flash <partition> [ <filename> ]         write a file to a flash partition
  erase <partition>                        erase a flash partition
  getvar <variable>                        display a bootloader variable
  boot <kernel> [ <ramdisk> ]              download and boot kernel
  flash:raw boot <kernel> [ <ramdisk> ]    create bootimage and flash it
  devices                                  list all connected devices
  continue                                 continue with autoboot
  reboot                                   reboot device normally
  reboot-bootloader                        reboot device into bootloader
  help                                     show this help message

options:
  -w                                       erase userdata and cache
  -s <serial number>                       specify device serial number
  -p <product>                             specify product name
  -c <cmdline>                             override kernel commandline
  -i <vendor id>                           specify a custom USB vendor id
  -b <base_addr>                           specify a custom kernel base address
  -n <page size>                           specify the nand page size. default: 2048

की एक अच्छी तरह से ज्ञात-उपयोग fastboot: उदाहरण के लिए चमकती, पुनर्प्राप्ति छवि फ्लैश करने के लिए है sudo fastboot flash recovery recovery.img, एक और सीधे एक रॉ इमेज फ्लैश करने के लिए है sudo fastboot flash system system.img। कर्नेल विकास के मामले में अधिक के लिए, इसका उपयोग करते हुए fastboot boot new_kernel, यह अस्थायी रूप से एक नया कर्नेल और बूट का उपयोग करता है जो बूट-लोडर के अपने बूट को छूने के बिना डाउनलोड करता है।

एक कच्ची छवि के आकार पर एक सीमा भी होती है जिसे फ्लैश करने की आवश्यकता होती है, जब मैं कच्ची छवि कहता हूं, तो मैं एक ऐसी फ़ाइल का उल्लेख कर रहा हूं जिसमें .imgविस्तार है, छवि 128Mb से अधिक नहीं होनी चाहिए। ( मुझे यह पता चला जब ics4blade को विकसित करते हुए, निर्माण पूरा होने के बाद, system.img 162Mb था, और मैंने इसे फ्लैश करने की कोशिश की, लेकिन फास्टबूट ने इनकार कर दिया! सीमा को दरकिनार करने के लिए, सीडब्ल्यूएम फ्लश करने योग्य ज़िप फ़ाइल बनाने के लिए और चारों ओर जाना पड़ा। यह! )

सावधानी बरतने और यह सुनिश्चित करने के लिए कि विभाजन सही है और दोबारा जांच करें और दोबारा जांच करें, यदि आवश्यक हो, तो कंप्यूटर से दूर चलें, ब्रेक लें, फिर से वापस आएं, और दोबारा जांच करें, यह वह जगह है जहां यह बहुत गलत हो सकता है, गलत विभाजन में गलत फ़ाइल को फ्लैश करें ... अच्छी तरह से सिकुड़ा हुआ


3
यह एक महान विचार है, लेकिन एक समस्या .... अदब केवल तभी काम करता है जब अदब डेमन डिवाइस का पता लगा सके। यदि फ़ोन सफलतापूर्वक नहीं चला है, तो adb काम नहीं करता है। तो एक "बूट-लूप", जब आपको सबसे ज्यादा काम करने की जरूरत नहीं होगी, और यह उस समय नहीं है जैसा कि मैं इसे आजमाता हूं। केवल एक चीज जो आपके पास कमांड-वार तक पहुंचती है, जो परवाह नहीं करती है कि फोन ने सफलतापूर्वक बूट किया है "फास्टबूट"। इस मामले में फिर क्या विकल्प है?
9exceptionThrower9

@ 9exceptionThrower9 ने फास्टबूट की अवधारणा को शामिल करने और आपकी टिप्पणी में जवाब देने के लिए मेरे उत्तर को संपादित किया है,
फास्टबूट

एकमात्र विकल्प जो मैं सोच सकता हूं, तेजी से cacheऔर dataविभाजन को मिटाने के लिए - यदि आप आगे बढ़ते हैं तो मैं किसी भी अप्रिय के लिए जिम्मेदार नहीं हूं! और CWM के माध्यम से ROM को फिर से चमकाने की कोशिश करें। इससे भी बेहतर , फास्टबूट के बारे में भूल जाओ और सीडब्ल्यूएम का उपयोग कैश और डेटा दोनों को पोंछने के लिए करें , ऐसा लगता है कि
बूटलूप एक बोर्कड

ब्याज के मामले के रूप में, आपने वास्तव में इसे बूटलूप में लाने के लिए क्या किया - यह एक महत्वपूर्ण सवाल है और जानना चाहेंगे कि आपने क्या कदम उठाए?
t0mm13b

मैंने गैलेक्सी नेक्सस के लिए एंड्रॉइड कर्नेल (मैगुरो) को संशोधित किया, विशेष रूप से "सॉकेट.एच" फ़ाइल को मेरी टीम के अनुसंधान परियोजना एफआईएनएस के साथ INET पंजीकरण को ओवरराइड करने के लिए (जो कि नेटवर्क शोधकर्ताओं के लिए उपयोगकर्ता प्रोटोकॉल में इंटरनेट प्रोटोकॉल को खींचता है)। इस फ़ाइल (केवल कुछ पंक्तियों) को संशोधित करने के बाद, मैंने कर्नेल को सफलतापूर्वक पुन: कनेक्ट किया, इस कर्नेल को एंड्रॉइड मैगुरो बिल्ड ट्री में डाला, एंड्रॉइड सिस्टम छवि को फिर से बनाया, और फिर नई पुनर्प्राप्ति, बूट, सिस्टम और उपयोगकर्ताडेटा .img फ़ाइलों को फ्लैश किया फोन ...
9exceptionThrower9

0

आप LiveBoot का उपयोग कर सकते हैं। यह Google Play Store में है। यह वही करेगा जो आप पूछ रहे हैं।


अगर मुझे बूटलूप मिल गया तो क्या होगा? क्या यूएसबी केबल के साथ ऐसा करने का कोई तरीका है?
beppe9000
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.