Та 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 цонх, бүтэлгүйтсэн үе шатын хоёр мөрийн хураангуй, энэ жагсаалтын дээрх орчны тэмдэглэл. Хэрэв зарим хэсгийг олон нийтэд нийтлэх боломжгүй бол нийлүүлэгчийн хаалттай дэмжлэгийн сувгийг ашиглаж, аль файлд тэр суваг хэрэгтэйг хэлээрэй.

Илгээхийн өмнө дөрвөн зүйлийг шалгаарай. Багц бүтэн үдээс хойш биш нэг оролдлогыг хамарч байна уу? Клиент болон системийн цагийн тэмдэглэгээ давхцаж байна уу? Мөн дотор нь токен, нууц үг эсвэл бүрэн захиалагчийн танигч байсаар байна уу? Эхлээд тэр сүүлийн зүйлийг засаж, дараа нь шинэ тасалбар нээхийн оронд одоогийн тасалбарт файлуудыг хавсаргаарай, ингэснээр хүлээн авагч өмнөх контекстийг хадгална.

Холбоотой нийтлэлүүд