თქვენ აჭერთ Connect-ს, პროფილი ერთი წამით ტრიალდება და კლიენტი აცხადებს კავშირის გაწყვეტას. მხარდაჭერა ჟურნალებს ითხოვს, თქვენ ერთვით ეკრანის სურათს და თემა ორი დღით ჩერდება, რადგან ვერავინ იტყვის, ხელის ჩამორთმევის რომელი ნაწილი დანებდა. ერთი მცდელობის გარშემო აგებული ანგარიში, ვიწრო დროის ფანჯრით და დასრულებული ბოლო ეტაპით, ბილეთს ერთი წრით წინ წევს. ალტერნატივა, მთელი დღის ტელეფონის ჟურნალები, ჩვეულებრივ მეორე მხარეს მყოფ ადამიანს მეტ საყურებელ ადგილს აძლევს.

ერთსა და იმავე კარიბჭეზე მყოფი ორი ტელეფონი მაინც სხვადასხვაგვარად მოიქცევა, რადგან პროტოკოლი, სერთიფიკატების საცავი, ავთენტიფიკაციის მეთოდი ან ტრაფიკის პოლიტიკა შეიძლება არ ემთხვეოდეს. ჩემს ტელეფონზე მუშაობს შედარების საწყისი წერტილია და არა Android-ის ხარვეზის მტკიცება.

დაიჭირეთ ერთი მცდელობა და არა მთელი დღის ისტორია

ჩაწერეთ გარემო, სანამ რამეს გაამეორებთ: Android-ის ვერსია, მწარმოებელი და მოდელი, კლიენტის სახელი და ვერსია, თქვენ მიერ არჩეული პროფილი, ქსელი, რომელსაც ხართ დაკავშირებული, და საათის დრო მისი დროის სარტყელით. ასევე ვნიშნავ, ჩართულია თუ არა ენერგოდაზოგვა ან Data Saver, რადგან ორივე ცვლის, რისი გაკეთება შეუძლია კლიენტს ეკრანის გამორთვის შემდეგ.

შემდეგ განსაზღვრეთ, ხუთი შედეგიდან რომელს უყურებთ სინამდვილეში. თანხმობის ან ნებართვის ფანჯარა არასდროს სრულდება, საბოლოო წერტილამდე საერთოდ ვერ მიაღწევთ, ავთენტიფიკაცია უარყოფილია, ინტერფეისის კონფიგურაცია წარუმატებლად მთავრდება წარმატებული შესვლის შემდეგ, ან გვირაბი ადის და ერთი კონკრეტული რესურსი მიუწვდომელი რჩება. თითოეულს განსხვავებული პატრონი და განსხვავებული გამოსავალი აქვს, და მათი შერევით მიღებული პაკეტი იღებს პასუხს ხელახლა ცდის თხოვნით. სწორედ მათ შორის გამოცნობა აქცევს ერთსაათიან ბილეთს ერთკვირიან მიმოწერად.

გადასვლებსაც აქვს მნიშვნელობა. თუ ხარვეზი მხოლოდ ეკრანის ჩაკეტვის შემდეგ ან Wi-Fi-დან მობილურ მონაცემებზე გადასვლის შემდეგ ჩნდება, ჩაწერეთ ეს ბილეთის პირველ სტრიქონში და აღნიშნეთ წუთი, როცა მოხდა.

ჯერ თავად კლიენტის ჟურნალი გაიტანეთ

პირველი დანართი აპიდან უნდა მოვიდეს და არა ოპერაციული სისტემიდან. კლიენტების უმეტესობა პარამეტრებში გთავაზობთ დიაგნოსტიკური ან კავშირის ჟურნალის ექსპორტს, ზოგჯერ ვერსიის სტრიქონზე ხანგრძლივი დაჭერის მიღმა დამალულს, და ეს ექსპორტი უკვე ესმის საკუთარი მდგომარეობის მანქანას. გამოიყენეთ ის ისე, როგორც არის, ნაცვლად იმისა, რომ საინტერესო სტრიქონები ხელახლა აკრიფოთ ბილეთის ტექსტში.

მიამაგრეთ პირველი შეცდომა და უშუალოდ წინა მოვლენები, და არა მხოლოდ გაწყვეტის ბოლო სტრიქონი. სუფთა კუდი ჩვეულებრივ ნიშნავს, რომ ნამდვილი ხარვეზი ადრე მოხდა: სერთიფიკატების ჯაჭვი, რომელიც არ ვალიდირდებოდა, სახელი, რომელიც მოულოდნელ ადგილას გადაწყდა, ან ინტერფეისი, რომელიც არასდროს კონფიგურირდა.

logcat დაამატეთ მხოლოდ იმ კითხვისთვის, რომელსაც დაასახელებთ

ტერმინალის ემულატორი ტელეფონზე არ არის სისტემური ჟურნალის დამწერი. Android თავის ბუფერებს ცალკე რგოლურ ნაკადებად წერს, რომელთა სრულად წაკითხვა მხოლოდ პრივილეგირებულ პროცესებს შეუძლიათ. ამიტომ ჩვეულებრივი აპი ხედავს საკუთარ გამომავალს და შეზღუდულ ნაწილს, და მტკიცება, რომ 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-ის ფანჯარა საწყისი და დასრულების დროით დასახელებული, ჩავარდნილი ეტაპის ორსტრიქონიანი შეჯამება და ამ სიის დასაწყისში მოცემული გარემოს შენიშვნა. თუ ნაწილის საჯაროდ გამოქვეყნება შეუძლებელია, გამოიყენეთ მომწოდებლის დახურული მხარდაჭერის არხი და თქვით, რომელ ფაილს სჭირდება ის არხი.

გაგზავნამდე შეამოწმეთ ოთხი რამ. ფარავს პაკეტი ერთ მცდელობას და არა მთელ ნაშუადღევს? ემთხვევა თუ არა კლიენტისა და სისტემის დროის ნიშნები? და შეიცავს თუ არა ის ჯერ კიდევ ტოკენს, პაროლს ან აბონენტის სრულ იდენტიფიკატორს? ჯერ ეს უკანასკნელი შეასწორეთ, შემდეგ ფაილები მიამაგრეთ არსებულ ბილეთს და ნუ გახსნით ახალს, რომ მიმღებმა წინა კონტექსტი შეინარჩუნოს.

დაკავშირებული სტატიები