सपोर्ट टिकट के लिए एंड्रॉइड पर VPN लॉग कैसे इकट्ठा करें
एक प्रयास के लिए क्लाइंट का लॉग निर्यात करें, फिर एक छोटी अधिकृत ADB logcat विंडो। समय और टैग से फ़िल्टर करें, रहस्य छिपाएँ, फिर एक बंडल भेजें।
आप Connect दबाते हैं, प्रोफ़ाइल एक सेकंड घूमती है, और क्लाइंट बताता है कि कनेक्शन टूट गया। सपोर्ट लॉग माँगता है, आप स्क्रीनशॉट जोड़ते हैं, और थ्रेड दो दिन अटका रहता है क्योंकि कोई नहीं बता सकता कि हैंडशेक का कौन-सा हिस्सा हार गया। एक ही प्रयास के इर्द-गिर्द बनी रिपोर्ट, संकीर्ण समय-खिड़की और पूरा हुआ अंतिम चरण के साथ, टिकट को एक ही दौर में आगे बढ़ाती है। विकल्प, यानी पूरे दिन के फ़ोन लॉग, अक्सर दूसरी तरफ़ वाले व्यक्ति को देखने के लिए ज़्यादा जगह देते हैं।
एक ही गेटवे पर दो फ़ोन फिर भी अलग व्यवहार कर सकते हैं, क्योंकि प्रोटोकॉल, प्रमाणपत्र भंडार, प्रमाणीकरण विधि या ट्रैफ़िक नीति मेल नहीं खा सकती। मेरे फ़ोन पर काम करता है, यह तुलना की शुरुआत है, एंड्रॉइड विफलता का सबूत नहीं।
एक दिन के इतिहास के बजाय एक प्रयास कैप्चर करें
कुछ भी दोहराने से पहले वातावरण लिख लें: एंड्रॉइड संस्करण, निर्माता और मॉडल, क्लाइंट का नाम और संस्करण, आपके चुने हुए प्रोफ़ाइल, आप जिस नेटवर्क से जुड़े हैं, और समय क्षेत्र के साथ घड़ी का समय। मैं यह भी नोट करता हूँ कि बैटरी सेवर या Data Saver चालू है या नहीं, क्योंकि दोनों बदल देते हैं कि स्क्रीन बंद होने पर क्लाइंट क्या कर सकता है।
फिर तय करें कि पाँच परिणामों में से आप वास्तव में कौन-सा देख रहे हैं। सहमति या अनुमति का संकेत कभी पूरा नहीं होता, समापन बिंदु तक पहुँचा ही नहीं जा सकता, प्रमाणीकरण अस्वीकार हो जाता है, सफल लॉगिन के बाद इंटरफ़ेस सेटअप विफल हो जाता है, या सुरंग बन जाती है और एक विशेष संसाधन पहुँच से बाहर रहता है। इनमें से हर एक का मालिक अलग और समाधान अलग है, और जो बंडल इन्हें मिला देता है उसे फिर से कोशिश करने का उत्तर मिलता है। इनके बीच अनुमान लगाना ही एक घंटे का टिकट एक हफ़्ते के पत्राचार में बदल देता है।
बदलाव भी मायने रखते हैं। अगर विफलता केवल स्क्रीन लॉक के बाद या Wi-Fi से मोबाइल डेटा पर जाने के बाद दिखती है, तो उसे टिकट की पहली पंक्ति में लिखें और वह मिनट नोट करें जब ऐसा हुआ।
पहले क्लाइंट का अपना लॉग निर्यात करें
पहला अनुलग्नक ऐप से आना चाहिए, ऑपरेटिंग सिस्टम से नहीं। अधिकांश क्लाइंट सेटिंग्स में नैदानिक या कनेक्शन-लॉग निर्यात देते हैं, कभी-कभी संस्करण स्ट्रिंग पर लंबे दबाव के पीछे छिपा हुआ, और वह निर्यात पहले से ही अपनी स्थिति-मशीन समझता है। दिलचस्प पंक्तियों को टिकट के मुख्य भाग में फिर से टाइप करने के बजाय इसे जैसा आता है वैसे ही इस्तेमाल करें।
पहली त्रुटि और उससे ठीक पहले की घटनाएँ जोड़ें, केवल अंतिम डिस्कनेक्ट पंक्ति नहीं। साफ़ पूँछ का मतलब आमतौर पर यह है कि असली विफलता पहले हुई: ऐसा प्रमाणपत्र श्रृंखला जो सत्यापित नहीं हुई, ऐसा नाम जो अप्रत्याशित जगह पर हल हुआ, या ऐसा इंटरफ़ेस जो कभी कॉन्फ़िगर ही नहीं हुआ।
logcat केवल उस प्रश्न के लिए जोड़ें जिसे आप नाम दे सकते हैं
फ़ोन पर टर्मिनल एमुलेटर सिस्टम लॉगर नहीं है। एंड्रॉइड अपने बफ़र दर्ज करता है अलग-अलग गोलाकार धाराओं के रूप में, जिन्हें केवल विशेषाधिकार प्राप्त प्रक्रियाएँ पूरा पढ़ सकती हैं। इसलिए एक सामान्य ऐप अपना आउटपुट और एक सीमित हिस्सा देखता है, और यह कहना कि logcat खाली था, प्लेटफ़ॉर्म ने क्या दर्ज किया इसके बारे में बहुत कम साबित करता है।
समर्थित रास्ता आपके नियंत्रण वाले कंप्यूटर से अधिकृत ADB सत्र है। डेवलपर विकल्प और USB डिबगिंग चालू करें, केबल जोड़ें, और डिवाइस पर RSA फ़िंगरप्रिंट संवाद स्वीकार करें; अगर वह संकेत बंद कर दिया जाए, तो हर आगामी कमांड unauthorized के साथ विफल हो जाती है और कोई कैप्चर शुरू नहीं होता।
कैप्चर में समय लगाने से पहले पुष्टि करें कि डिवाइस वास्तव में वहाँ है। adb devices को सीरियल नंबर और फिर device शब्द छापना चाहिए, और offline या unauthorized दिखाने वाली किसी भी चीज़ को पहले केबल, संकेत या ड्राइवर ठीक करने की ज़रूरत है।
सूची में आने के बाद, Connect दबाने से कुछ सेकंड पहले कैप्चर शुरू करें और क्लाइंट के हारने के तुरंत बाद रोकें। जानबूझकर शुरू किया गया लाइव कैप्चर बीस मिनट बाद लिए गए डंप से बेहतर है, क्योंकि गोलाकार बफ़र पहले ही घूम चुके हैं और आपको चाहिए शुरुआती पंक्तियाँ जा चुकी हो सकती हैं:
adb logcat -v threadtime -b main,system,crash > attempt.txt
VPN शब्द के बजाय समय और टैग से फ़िल्टर करें
कैप्चर में vpn खोजना विफलता समझाने वाली पंक्ति खोने का सबसे तेज़ तरीका है। प्रमाणपत्र सत्यापन, प्रक्रिया क्रैश और कनेक्टिविटी बदलाव ऐसे टैग के तहत दर्ज होते हैं जो कभी VPN का ज़िक्र नहीं करते, इसलिए कीवर्ड फ़िल्टर शोर रखता है और सबूत फेंक देता है।
पहले खिड़की सीमित करें, फिर प्राथमिकता, फिर टैग। जब आपको केवल ज्ञात क्षण के बाद की घटना चाहिए, तो adb logcat -v threadtime -t '11-03 20:14:00.000' उस बिंदु से हाल की पूँछ दोबारा चलाता है, और threadtime प्रारूप टाइमस्टैम्प को क्लाइंट के अपने निर्यात के साथ तुलनीय रखता है।
अगर आप क्लाइंट पैकेज जानते हैं, तो टैग का अनुमान लगाने के बजाय उसकी प्रक्रिया का पालन करें। adb shell pidof com.vendor.client एक PID लौटाता है और adb logcat --pid=1234 -v threadtime केवल उसी प्रक्रिया को छापता है, जबकि adb logcat -g दिखाता है कि ओवरराइट शुरू होने से पहले हर बफ़र में कितनी जगह है।
रहस्य छिपाएँ, फिर एक सुसंगत बंडल सौंपें
आपकी मशीन से कुछ भी निकलने से पहले पासवर्ड, टोकन, निजी कुंजियाँ, सत्र कुकीज़ और पूर्ण डिवाइस पहचानकर्ता हटा दें। त्रुटि कोड, घटनाओं का क्रम और पता संबंध रखें जो विफलता को पठनीय बनाते हैं, क्योंकि उस बिंदु से आगे साफ़ किया गया कैप्चर उतना ही बेकार है जितना कभी फ़िल्टर न किया गया।
फिर कई अलग फ़ाइलों के बजाय एक बंडल भेजें: क्लाइंट निर्यात, शुरू और बंद समय से नामित ADB विंडो, विफल चरण का दो पंक्तियों का सारांश, और इस सूची के शीर्ष का वातावरण नोट। अगर इसका कोई हिस्सा सार्वजनिक रूप से पोस्ट नहीं किया जा सकता, तो प्रदाता का निजी सपोर्ट चैनल इस्तेमाल करें और बताएँ कि किस फ़ाइल को वह चैनल चाहिए।
भेजने से पहले चार चीज़ें जाँचें। क्या बंडल पूरी दोपहर के बजाय एक प्रयास को कवर करता है? क्या क्लाइंट और सिस्टम के टाइमस्टैम्प ओवरलैप करते हैं? और क्या इसमें अब भी टोकन, पासवर्ड या पूर्ण ग्राहक पहचानकर्ता है? पहले उस अंतिम बिंदु को ठीक करें, फिर नया टिकट खोलने के बजाय मौजूदा टिकट में फ़ाइलें जोड़ें, ताकि जो इसे उठाए वह पहले का संदर्भ बनाए रखे।