Sådan indsamler du Android VPN-logfiler til en supportbillet
Eksporter klientens log for ét forsøg, derefter et kort autoriseret ADB logcat-vindue. Filtrer efter tid og tag, slør hemmeligheder, og send én pakke.
Du trykker på Connect, profilen snurrer et sekund, og klienten melder afbrudt forbindelse. Support beder om logfiler, du vedhæfter et skærmbillede, og tråden går i stå i to dage, fordi ingen kan sige, hvilken del af håndtrykket der gav op. En rapport bygget omkring ét forsøg, med et smalt tidsvindue og den sidst fuldførte fase, flytter billetten frem i én runde. Alternativet, en hel dags telefonlogfiler, giver oftest personen i den anden ende flere steder at kigge.
To telefoner på samme gateway kan stadig opføre sig forskelligt, fordi protokollen, certifikatlageret, godkendelsesmetoden eller trafikpolitikken muligvis ikke matcher. Det virker på min telefon er et udgangspunkt for sammenligning, ikke bevis for en Android-fejl.
Fang ét forsøg i stedet for en hel dags historik
Skriv miljøet ned, før du gengiver noget: Android-version, producent og model, klientnavn og -version, den profil du valgte, det netværk du er tilsluttet, og klokkeslættet med tidszone. Jeg noterer også, om batterisparefunktion eller Data Saver er slået til, fordi begge ændrer, hvad klienten må gøre, når skærmen slukkes.
Beslut derefter, hvilket af fem udfald du faktisk ser på. Samtykke- eller tilladelsesprompten fuldføres aldrig, endpointet kan slet ikke nås, godkendelsen afvises, interface-opsætningen fejler efter et vellykket login, eller tunnelen kommer op, og en bestemt ressource forbliver utilgængelig. Hver af dem har en anden ejer og en anden løsning, og en pakke, der blander dem, får et svar om at prøve igen. Det er gætteriet mellem dem, der gør en times billet til en uges frem og tilbage.
Overgange betyder også noget. Hvis fejlen kun vises efter skærmlås eller efter et skift fra Wi-Fi til mobildata, skriv det i billetens første linje, og noter det minut, det skete.
Eksporter først klientens egen log
Den første vedhæftning bør komme fra appen og ikke fra operativsystemet. De fleste klienter har en eksport af diagnostik- eller forbindelseslog i indstillingerne, nogle gange gemt bag et langt tryk på versionsstrengen, og den eksport forstår allerede sin egen tilstandsmaskine. Brug den, som den kommer ud, i stedet for at skrive de interessante linjer ind i billetten igen.
Vedhæft den første fejl og hændelserne lige før den, ikke kun den sidste afbrudte linje. En ren hale betyder normalt, at den egentlige fejl skete tidligere: en certifikatkæde, der ikke ville validere, et navn, der blev opløst et uventet sted, eller et interface, der aldrig blev konfigureret.
Tilføj kun logcat for et spørgsmål, du kan navngive
En terminalemulator på telefonen er ikke en systemlogger. Android logger sine buffere som separate cirkulære strømme, som kun privilegerede processer kan læse fuldt ud. En almindelig app ser derfor sit eget output plus en begrænset del, og påstanden om at logcat var tom beviser meget lidt om, hvad platformen registrerede.
Den understøttede vej er en autoriseret ADB-session fra en computer, du styrer. Slå udviklerindstillinger og USB-fejlfinding til, tilslut kablet, og accepter RSA-fingeraftryksdialogen på enheden; hvis den prompt afvises, fejler hver senere kommando med unauthorized, og ingen optagelse starter nogensinde.
Bekræft, at enheden virkelig er der, før du bruger tid på en optagelse. adb devices bør udskrive serienummeret efterfulgt af ordet device, og alt, der viser offline eller unauthorized, kræver først kablet, prompten eller driveren ordnet.
Når den er på listen, begynd at optage et par sekunder før du trykker Connect, og stop lige efter klienten giver op. En live optagelse med en bevidst start slår et dump taget tyve minutter senere, fordi de cirkulære buffere allerede er roteret, og de tidlige linjer, du har brug for, kan være væk:
adb logcat -v threadtime -b main,system,crash > attempt.txt
Filtrer efter tid og tag i stedet for ordet VPN
At søge en optagelse igennem for vpn er den hurtigste måde at miste den linje, der forklarer fejlen. Certifikatvalidering, procesnedbrud og ændringer i forbindelsen logges under tags, der aldrig nævner VPN, så et nøgleordsfilter beholder støjen og smider beviset væk.
Indsnævr først vinduet, derefter prioriteten, derefter tagget. Når du kun har brug for det, der skete efter et kendt tidspunkt, afspiller adb logcat -v threadtime -t '11-03 20:14:00.000' den seneste hale fra det punkt, og threadtime-formatet holder tidsstempler sammenlignelige med klientens egen eksport.
Hvis du kender klientpakken, følg dens proces i stedet for at gætte på tags. adb shell pidof com.vendor.client returnerer en PID, og adb logcat --pid=1234 -v threadtime udskriver kun den proces, mens adb logcat -g viser, hvor meget plads hver buffer har, før den begynder at overskrive.
Slør hemmeligheder, og overdrag så én sammenhængende pakke
Før noget forlader din maskine, skal du fjerne adgangskoder, tokens, private nøgler, sessionscookies og fulde enhedsidentifikatorer. Behold fejlkoderne, rækkefølgen af hændelser og adresseforholdene, som gør fejlen læsbar, fordi en optagelse, der er renset forbi det punkt, er lige så ubrugelig som en, der aldrig blev filtreret.
Send derefter én pakke i stedet for flere løse filer: klientens eksport, ADB-vinduet navngivet med start- og stopptid, et tolinjers resumé af den fase, der fejlede, og miljønoten fra toppen af denne liste. Hvis en del af det ikke kan lægges offentligt op, brug udbyderens private supportkanal, og sig hvilken fil der har brug for den kanal.
Før du sender, skal du kontrollere fire ting. Dækker pakken ét forsøg i stedet for en hel eftermiddag? Overlapper klientens og systemets tidsstempler? Og indeholder den stadig et token, en adgangskode eller en fuld abonnentidentifikator? Ret det sidste punkt først, og vedhæft derefter filerne til den eksisterende billet i stedet for at åbne en ny, så den, der tager den, beholder den tidligere kontekst.