[Android] 100 โพสแล้วจ้า~! ฉลองด้วยการสอนวิธีการฝึกอาชีพ OTA Hunter สำหรับ Nexus

ก่อนอื่นเลย ขอประกาศเป็นทางการว่า Blog ในเว็บนี้ โพสนี้เป็นโพสที่ 100 แล้ว เย่~!!

ผมเองก็ไม่มีอะไรจะให้ นอกเสียจากความรู้ที่สั่งสมมา โดยวันนี้จะมาสอนวิธีการล่า OTA URL สำหรับ Nexus Device และผองเพื่อน ซึ่งได้รับการอัพเดตมาจาก Google โดยตรง

OTA Hunter

ซึ่งวิธีการนั้นก็มีอยู่หลากหลายวิธี และเกือบทุกวิธี ได้ถูกใส่เป็นฟีเจอร์อยู่ใน App Nexus Update Checker ที่หลาย ๆ คนรู้จักกันดีอยู่แล้ว (เหรออออ) เพื่อคอยตรวจสอบค้นหา OTA ทั้งที่ผ่านมา และที่เพิ่งจะได้รับเข้ามาใหม่ และส่งกลับมายัง Server ของผมเอง (ขอบคุณผู้ใช้งาน App ทุกท่านนะครับ) ซึ่งข้อมูลที่ได้ ก็จะถูกส่งต่อให้กับผู้ที่ใช้ App ในรุ่นเดียวกัน เพื่อไปลัดคิวอัพเดตผ่าน App นั่นเอง

นอกจากนี้ ข้อมูลทั้งหมด จะอัพเดตอยู่ในหน้า Google Nexus OTA Download ในเว็บนี้นี่แหล่ะ

ยังไม่หมด… ข้อมูลที่ได้ ก็ได้นำไปเผยแพร่ต่อที่เว็บ XDA Developers ตามกระทู้รวม Link สำหรับ OTA URLs เพื่อที่จะได้เป็นคลังข้อมูล ซึ่งในกระทู้เหล่านั้น มีเหล่า OTA Hunter คอยแจ้ง OTA URL ที่ดักมาได้ เช่นกระทู้รวม OTA URLs ของ Galaxy Nexus (จิ้มซิจิ้ม) ที่โพส #4 จะเห็นรายชื่อเหล่า OTA Hunter ยาวเป็นหางว่าว

รายชื่อเหล่า OTA Hunter สำหรับ Galaxy Nexus
รายชื่อเหล่า OTA Hunter สำหรับ Galaxy Nexus

เอ๊ะ~!! ชื่อคนแรกใครล่ะนั่น (อย่าบอกนะว่าไม่รู้ )

ไหน ๆ ก็เอามาโชว์ละ อีกหน่อยละกัน

จากกระทู้รวม OTA URLs ของ Nexus 7 (2013) ที่ #1

Nex7 (2013) Hunter listจากกระทู้รวม OTA URLs ของ Nexus 6 ที่ #1

รายชื่อเหล่า OTA Hunter สำหรับ Nexus 6

จากกระทู้รวม OTA URLs ของ Nexus 9 ที่ #1

รายชื่อเหล่า OTA Hunter สำหรับ Nexus 9

จากกระทู้รวม OTA URLs ของ HTC One M8 (Google Play edition) ที่ #1

รายชื่อเหล่า OTA Hunter สำหรับ HTC One M8 Google Play edition

จากกระทู้รวม OTA URLs ของ Motorola Moto 360 (Android Wear) ที่ #1

รายชื่อเหล่า OTA Hunter สำหรับ Moto 360 Android Wearและอื่น ๆ อีกมากมายยยยยยย

อยากดักของ Google Glass ได้บ้าง แต่ไม่มี Device อ่า

 

List of contents

ก่อนอื่นขอติดเรตให้กับ blog นี้นิดนึง เพราะมัน Geek มว๊ากกกก

content rated geek

 

Unfold OTA Flow

ก่อนอื่น ขอแฉวิธีการอัพเดตระบบ ของเหล่า Google Nexus กันก่อนละกัน เพราะนี่คือจุดเริ่มต้นของสายอาชีพ OTA Hunter เลยล่ะ

เมื่อ Google ทำการปล่อย OTA ให้กับ Nexus ในแต่ละรุ่นนั้น จะเริ่มจากการทดลองปล่อยให้กับ 1% ของเครื่องที่ถูกสุ่มมาจากรุ่นเดียวกันทั้งหมด เพื่อเป็นการทดสอบ หากไม่พบปัญหาใด ๆ ภายใน 48 ชั่วโมงแรก ก็จะเริ่มทะยอยปล่อยเพิ่มขึ้น เป็นเหตุให้ผู้ใช้งานในแต่ละรุ่น จะได้รับการอัพเดตไม่พร้อมกัน

ใน XDA เหล่า OTA Hunter ทั้งหลาย จึงรวมตัวกันออกล่า URL กันเป็นบ้าเป็นหลัง เพื่อให้ได้ OTA URL มาก่อนใคร (เว่อมาก) โดยก็มีเหล่า OTA Hunter มือฉกาจ ได้เผยวิธีออกล่าเอาไว้มากมาย แต่กระจัดกระจายอยู่หลายแห่ง และมีส่วนที่ผมค้นพบด้วยตัวเองด้วย จึงเกิดเป็น blog นี้ขึ้นมา เพื่อหวังจะฝึกอาชีพให้กับท่านที่สนใจ เผื่อว่าเครื่องของท่าน อาจเป็นหนึ่งใน 1% แรกที่ถูก Google เลือก เหมือนครั้งนึงที่ผมเคยได้ OTA URL คนแรก ๆ กับ Nexus 7 2012 มาแล้ว (ตื่นมาล่า OTA URL กลางดึกเลยทีเดียว)

เมื่อมี OTA มาถึงเครื่องเรานั้น ในหน้า System Update ก็จะแจ้งเตือนแบบในรูปนี้ (คงเคยเห็นกันแล้วล่ะเน๊อะ)

หน้า System Update เมื่อมี OTA มา
หน้า System Update เมื่อมี OTA มา

นั่นคือ Google ได้ Push ข้อมูลว่ามีการอัพเดตมาถึงเครื่องเราแล้ว ซึ่งข้อมูลที่ส่งมานั้น จะบอกรายละเอียดการอัพเดต ตามที่แสดงให้เห็นบนหน้าจอ และแนบ OTA URL มาแล้วด้วย…

และด้วยตัวระบบของ Android จะมีการเขียน Log อยู่ตลอดเวลา (เรียกว่า LogCat) เพื่อไว้สำหรับให้ Developer ไว้ Debug และ Google ก็ได้ทำการเขียน Log ในส่วนของ System Update ไว้ด้วย โดยจะเขียน OTA URL ที่ได้รับมา และชื่อไฟล์ที่จะทำการ Download ไว้ด้วย

นอกจาก LogCat ที่เขียนข้อมูลจาก System Update แล้ว ในระบบ จะมีการเขียน Log ไว้อีกอย่างนึง ที่เราสามารถดึงข้อมูลเก่า ๆ ขึ้นมาดูได้ ไม่ว่าจะอัพเดตมานานแค่ไหนแล้วก็ตาม ด้วยการ shell เข้าไปในระบบ แล้วใช้คำสั่ง dumpsys เพื่อแสดงข้อมูลออกมาได้

เมื่อเรากด Download ในหน้า System Update ระบบจะทำการเขียนไฟล์ที่ Download มาไว้ที่ /cache หรือ Cache Partition โดยไม่มีการเปลี่ยนชื่อไฟล์ (บางทีเราเรียกไฟล์นี้ว่า Update Package, OTA Package หรือ OTA File)

เมื่อระบบ Download ไฟล์ Update Package เสร็จแล้ว จะทำการ Verify ว่าไฟล์ที่ Download มาถูกต้องหรือไม่ โดยจะใช้ Certificate ที่อยู่ในเครื่อง (/system/etc/security/otacerts.zip) มาร่วมในการตรวจสอบ เพื่อให้มั่นใจว่าไฟล์ที่ Download มาถูกต้อง ครบถ้วน สมบูรณ์

ไฟล์ otacerts.zip เปิดจาก App ES File Explorer
ไฟล์ otacerts.zip เปิดจาก App ES File Explorer

ถึงตรงนี้ ในหน้า System Update จะมีปุ่ม Restart & Install ขึ้นมาให้เรากด…

หน้า System Update เมื่อ Download update package เสร็จแล้ว
หน้า System Update เมื่อ Download update package เสร็จแล้ว

เมื่อเรากดปุ่ม Restart & Install ระบบจะทำการเขียนไฟล์คำสั่งไว้ที่ไฟล์ /cache/recovery/command แล้วทำการ Reboot ระบบ เข้าสู่ Recovery Mode

เมื่อ Recovery Mode ถูกเปิดขึ้นมา และพบคำสั่งที่เขียนไว้ จะทำการอ่านคำสั่งขึ้นมา ซึ่งในคำสั่งนั้น จะบอกว่าให้ทำการติดตั้งไฟล์ Update Package ที่ Download มาจากที่ /cache แล้วก็จะเริ่มทำการติดตั้ง Update Package โดยทำตามคำสั่งที่เขียนไว้ใน Update Package อีกที (ไว้จะเขียนเจาะลึกในส่วนนี้แยกไปต่างหากให้อ่านกันนะ)

Recovery Mode กำลังติดตั้ง Update Package
Recovery Mode กำลังติดตั้ง Update Package

ใน Recovery Mode จะทำการเขียน Log การทำงานไว้ที่ /cache/recovery/ ซึ่งไฟล์ทั้งหมดที่อยู่ภายในนี้ จะมีชื่อไฟล์ Update Package อยู่ด้วย

เมื่อ Recovery Mode ทำงานตามคำสั่งใน Update Package เสร็จแล้ว ก็จะ Reboot ระบบ แล้วเข้าสู่ขั้นตอนการอัพเดตระบบในส่วนที่เหลือในการ Boot ครั้งแรกต่อไป

สำหรับการอัพเดตระบบ ของ Nexus คร่าว ๆ ก็มีเท่านี้ครับ ใน Android รุ่นอื่น ๆ ก็มีทั้งเหมือนกัน และคล้ายกันนะ อย่าง Nokia X ที่เป็น Android Fork นี่ ผมก็ยังเคยดักมาแล้วนะ

ทั้งหมดที่ผมแฉให้ฟัง สามารถดักข้อมูล OTA ออกมาได้ทุกจุดเลย น่าสนใจกันแล้วใช่ม๊าาาาา~!!

ยัง… ยังไม่จบ อ่านหัวข้อต่อไปก่อนนะ

 

OTA URL Pattern

OTA URL นั้น จะมีรูปแบบคล้าย ๆ กันหมด ซึ่งถ้าเรารู้ Pattern ของ OTA แล้ว จะช่วยเป็น Keyword ในการหา OTA URL ได้ง่ายขึ้น

เคยมีครั้งนึงที่ได้ไฟล์ Update Package มา แต่คนที่อัพโหลดไว้ใจดี เปลี่ยนชื่อไฟล์ให้ซะ สงสัยกลัวชื่อไฟล์จะยาว ผมก็สามารถย้อนหา URL จากไฟล์ได้ เพราะเข้าใจ Pattern นี่ล่ะ จริง ๆ นะ ไม่ได้โม้~!!

สำหรับ OTA URL จะมี 2 รูปแบบ ดังนี้

[device path] จะต่างกันไปในแต่ละรุ่น ตัวอย่างเช่น…

  1. Nexus Q จะเป็น tungsten
  2. Nexus 6 จะเป็น google_shamu_shamu
  3. Nexus 9 จะเป็น google_flounder_volantis
  4. HTC One M8 จะเป็น gpedogfood_htc_m8_generic
  5. Moto 360 จะเป็น motorola_minnow_metallica

สังเกตุว่า เราไม่สามารถเดาได้เลยว่าจะเป็นคำว่าอะไร เพราะไม่มีรูปแบบที่แน่นอน

ส่วน [file] เป็นชื่อไฟล์ Update Package จะมีหลายรูปแบบ ดังนี้

แบบที่ 1 เลิกใช้ไปแล้วในช่วงที่ Android 4.0 ICS ออกมา ตัวอย่างเช่น

โดยพบบน Nexus S เท่านั้น ซึ่งค่า [xxx] นั้น ไม่แน่ใจว่ามาจากไหน แต่มันเลิกใช้ไปแล้ว ข้ามไปละกันนะ แค่ให้รู้ไว้ว่าเคยมีละกัน

แบบที่ 2 นี่ ปัจจุบันเลิกใช้ไปแล้ว พบบน Nexus One เท่านั้น ซึ่งจะเป็น Full ROM คืออัพเดตทับเลย ไม่สนใจ Build number ก่อนอัพเดต โดยที่ [sha1 x digits] คือค่าความถูกต้องแบบ SHA-1 จำนวน x หลักแรก ส่วน [product code] คือรหัสของ ROM ในแต่ละรุ่น และ [build number] จะเป็นเลข Build number แบบเก่าที่เป็นตัวเลข ตัวอย่างเช่น

แบบที่ 3-4 ปัจจุบันก็เลิกใช้ไปแล้วเช่นกัน มีต้นแบบมาจากแบบที่ 2 และเปลี่ยนมาใช้แบบที่ 5-6 ในช่วง Android 5.1 นี่เอง ซึ่งก็จะคล้าย ๆ กันหมดนั่นแหล่ะ โดยที่ [build number] จะเป็นเลข Build number แบบตัวอักษร เพื่อบอกว่า อัพเดตเป็น Build number ไหน จาก Build number ไหน ส่วน [xxx] ปัจจุบัน พบอยู่ 2 คำ คือ radio-restricted และ fullradio ตัวอย่างเช่น

สำหรับแบบที่ 7 จะพบบนตระกูล Google Play editions เท่านั้น โดย [xxx] จะแตกต่างกันไปตามแต่ละรุ่น ตัวอย่างเช่น

ส่วนแบบอื่น ๆ นอกจากนี้ มักจะไม่มีรูปแบบแน่นอน แต่จะคล้าย ๆ กับแบบที่ 3-6 นั่นแหล่ะ ส่วนใหญ่จะเป็น Google ลืมใส่บางส่วน หรือเป็นการแก้ไขจากตัวที่มีปัญหา ก็ขอข้ามไปละกันนะ ไม่ได้เกิดขึ้นบ่อย ๆ

ชักจะคันไม้คันมือกันแล้วใช่ไม๊ มาดูแต่ละวิธี ที่จะล่า OTA URL กันต่อเลย

บอกไว้ก่อนนะว่า รูปตัวอย่างในแต่ละวิธีต่อจากนี้ ทำขึ้นจากอุปกรณ์หลายตัว มีทั้งที่ทำไว้นานแล้ว และเพิ่งทำใหม่ ข้อมูลที่เห็นในแต่ละรูปจึงไม่ได้สอดคล้องกัน อย่าไปสนใจมันนะ จะได้ไม่สับสน

 

Capture OTA URL with Bug Report

ความต้องการ

  • เครื่องที่ไม่ได้ root
    • Internet
  • เครื่องที่ root แล้ว
    • App File Explorer ที่ใช้สิทธิ์ root ได้ หรือ
    • App Terminal

วิธีแรกนี้ เป็นวิธีที่ง่ายที่สุดในการล่า OTA (แต่ผมไม่ชอบเท่าไหร่) นั่นก็คือการใช้ Bug Report

อย่าเพิ่งเกาหัวกันครับ ว่ามันเกี่ยวอะไรกับ Bug Report มันยังไม่มีอะไร Force Close แล้วจะกด Bug Report ยังไง… ถูกแล้วครับ ไม่ใช่ Bug Report ตรงนั้น หากแต่เป็นตรงนี้ ตรงนั้น และตรงโน้นนนนนนน (อะไรของมันฟระ)

วิธีนี้ ใช้ได้หลังจากมีการแจ้งเตือนใน System Update หรือกด Download ใน System Update แล้ว แต่ยังไม่ได้กด Restart & Install

ก่อนอื่นให้ลองเปิดเข้าไปในเมนู Setting เลื่อนลงไปล่างสุด จะเห็นเมนู Developer options จิ้มเข้าไปเลยยยย (จิ้มซิจิ้ม จะรออะไรอยู่)

Settings menu
Settings menu

ถ้าไม่มีเมนู Developer options แสดงว่ายังไม่ได้เปิดมันขึ้นมา ต้องเปิดขึ้นมาก่อน โดยเข้าไปที่เมนู About phone/tablet แล้วจิ้มรัว ๆ ที่ Build number 7 ที

ในเมนู Developer options จะมีเมนู Take bug report (1) อันนี้แหล่ะ จิ้มเลย ก็จะพบหน้าต่าง Take bug report ก็กด REPORT (2) ได้เลย

หน้าต่าง Take bug report จากเมนู ใน Developer options
หน้าต่าง Take bug report จากเมนู ใน Developer options

เงียบ………………

ไม่ต้องตกใจว่า ทำไมจิ้มไปแล้วเงียบ เพราะจะใช้เวลาประมวลผลราว 1-3 นาที แล้วจะแจ้งออกมาทาง Notification

เมื่อทำการสร้าง Bug report เรียบร้อย จะแจ้งให้ทราบทาง Notification
เมื่อทำการสร้าง Bug report เรียบร้อย จะแจ้งให้ทราบทาง Notification

เมื่อจิ้มไปที่ Notification จะพบว่า ระบบจะให้ทำการ Share bug report ออกไป โดยจะต้องแชร์ไปทาง Email หรือ Cloud Drive ทั้งหลายเท่านั้น ไม่สามารถเซฟข้อมูลไว้ในเครื่องได้ (ที่เห็นว่ามี ES Save to… ลองดูแล้ว ไม่สามารถเซฟได้)

Share bug report
Share bug report

ผมไม่ชอบวิธีนี้ก็ตรงนี้ล่ะ
แต่ถ้าใครเจอว่าเซฟลงเครื่องผ่าน App ไหนได้ แนะนำด้วยครับ

ถ้าเลือกส่ง Email ก็ส่งให้ตัวเองโลด หรือจะลง Cloud Storage ก็ไม่ว่ากัน ซึ่งเราจะเห็นว่า จะได้ไฟล์รูป 1 ไฟล์ และ Text 1 ไฟล์

ตัวอย่าง Bug Report ที่ Share ทาง email เปิดด้วย App Inbox
ตัวอย่าง Bug Report ที่ Share ทาง email เปิดด้วย App Inbox

สำหรับเครื่องที่ root แล้ว สามารถเข้าไปเอาไฟล์ได้ที่ /data/bugreports ซึ่งมันคือที่เดียวกับ /data/data/com.android.shell/files/bugreports นั่นเอง

ให้เปิด Text file ขึ้นมา แล้วไล่หาดู OTA URL อยู่ในนี้ล่ะ…

หาเจอมั๊ยยยยยย…

ถ้าเจอ แสดงว่าคุณสายตาดีมว๊ากกก แต่มันลำบากมิใช่น้อยเลย เพราะข้อมูลมันเยอะมาก ด้วยขนาดไฟล์เกือบ 10 MB~!!

วิธีจะหาเจอง่าย ๆ ให้ทำการ Search โดยค้นหาคำว่า system_update หรือ SystemUpdateService ก็เจอแล้วล่ะ

รูปข้างล่างนี้ ผมเก็บ Bug Report มาจาก Nexus 10 จะเห็นว่ามีทั้งแบบได้ OTA URL มาเลย และมีแบบได้เฉพาะชื่อไฟล์ (จะเห็นว่าไฟล์ถูกเขียนอยู่ที่ /cache)

ไฟล์ Bug Report เปิดด้วย Notepad++ บน Windows
ไฟล์ Bug Report เปิดด้วย Notepad++ บน Windows
ไฟล์ Bug Report เปิดด้วย Notepad++ บน Windows
ไฟล์ Bug Report เปิดด้วย Notepad++ บน Windows

ไม่สอนวิธี Search ละกันนะ เดี๋ยว blog จะยาวไป แต่ง่ายสุดก็คือใช้คอมพ์ทำ ถ้าบน Android ยังหา Text Editor ที่ค้นหาคำได้ และเปิดไฟล์ขนาดเกือบ 10 MB ดี ๆ ยังไม่ได้เลย หรือถ้าใครใช้ Command เป็น ใช้ App Terminal Emulator ได้เลย

 

Capture OTA URL with LogCat

ความต้องการ

  • เครื่องที่ไม่ได้ root
    • เปิด USB debugging
    • PC ลง ADB Driver เรียบร้อย
    • Android SDK Platform-tools
  • เครื่องที่ root แล้ว
    • App Terminal

วิธีนี้ เป็นวิธีแรกเลยที่ผมใช้ดัก OTA URL ได้ฟิลลิ่งของการเป็น Hacker (ก็ว่าไป) และใช้บ่อยที่สุด (เหล่า OTA Hunter ในยุคแรก ๆ มักใช้วิธีนี้) แต่จะต้องมีความรู้ทางด้าน IT นิดนึง เพราะเราจะใช้ Command ในการดักข้อมูล

วิธีนี้ ใช้ได้หลังจากมีการแจ้งเตือนใน System Update หรือกด Download ใน System Update แล้ว แต่ยังไม่ได้กด Restart & Install

ก่อนอื่นต้องต่อเครื่องเข้ากับ PC แล้วทำการเปิด dos (Command Prompt หรือ cmd นั่นแหล่ะ) ที่ Folder Platform-tools ของ Android SDK เพราะเราจะใช้โปรแกรม adb (Android Debug Bridge) ในการสั่งงาน

ทดสอบว่าการเชื่อมต่อเรียบร้อยดี ด้วยคำสั่งต่อไปนี้

ถ้าแสดง Serial Number ออกมา แสดงว่าการเชื่อมต่อเรียบร้อยดี พร้อมออกล่า OTA URL แล้ว

ต่อจากนั้นก็ ให้สั่ง adb shell เพื่อเข้าไปยัง shell command ในเครื่อง

adb shell สั่งงานจาก dos
adb shell สั่งงานจาก dos

สำหรับเครื่องที่ root แล้ว สามารถใช้ App Terminal Emulator เข้าไปยัง shell ทำบนได้เลย แค่เปิด App ขึ้นมา ต่อจากนั้นก็พิมพ์ su เพื่อขอสิทธิ์ root รอไว้เลย (ถ้าได้สิทธิ์ root แล้ว Prompt จะเปลี่ยนจากตัว $ เป็น #)

shell ผ่าน App Terminal Emulator
shell ผ่าน App Terminal Emulator

ต่อจากนั้น ให้ไปกด Update ทีนึง แล้วรีบมาทำต่อก่อนที่ Log จะหายไป

กลับมาที่ shell ให้พิมพ์คำสั่งต่าง ๆ ดังนี้

ดักข้อมูล OTA ด้วย logcat
ดักข้อมูล OTA ด้วย logcat

ก็จะเห็น OTA URL หรือชื่อไฟล์แล้วล่ะ (รูปนี้ทำไว้นานแล้ว แต่ทำไว้แค่ตัวอย่างเดียว ไว้ถ้ามีดักอัพเดตอีก จะมาเติมให้นะครับ)

 

Capture OTA URL with dumpsys

ความต้องการ

  • เครื่องที่ไม่ได้ root
    • เปิด USB debugging
    • PC ลง ADB Driver เรียบร้อย
    • Android SDK Platform-tools
  • เครื่องที่ root แล้ว
    • App Terminal

วิธีนี้ เป็นหนึ่งในวิธีใหม่ ที่ได้ผลดีมาก และผมก็ชอบมากเช่นกัน เพราะว่าสามารถหาข้อมูล OTA URL ย้อนหลังไปได้นานมาก รู้สึกจะย้อนไปหาได้ตั้งแต่อัพเดตครั้งแรกเลย ถ้าไม่ Factory reset ไปซะก่อนนะ

วิธีนี้ ใช้ได้กับเครื่องที่เคยมีการอัพเดตแล้ว และยังไม่ได้ Factory reset

โดยเราจะใช้ shell command เหมือนกับวิธีที่แล้ว ไม่เขียนซ้ำละกันนะ

ให้พิมพ์คำสั่งต่าง ๆ ดังนี้

ดักข้อมูล OTA ด้วย dumpsys
ดักข้อมูล OTA ด้วย dumpsys

ก็จะเห็น OTA URL ทั้งหมด ที่เคยได้รับมาแล้วล่ะ แจ๋วไปเล้ยยยย~!!

 

Capture OTA File from cache

ความต้องการ

  • เครื่องที่ไม่ได้ root
    • Unlock Bootloader
    • Custom Recovery (TWRP)
  • เครื่องที่ root แล้ว #1
    • App File Explorer ที่ใช้สิทธิ์ root ได้ หรือ
    • App Terminal
  • เครื่องที่ root แล้ว #2
    • เปิด USB debugging
    • PC ลง ADB Driver เรียบร้อย
    • Android SDK Platform-tools

วิธีนี้ เหมาะสำหรับเครื่องที่ root แล้ว ก็แค่เปิดไปหาชื่อไฟล์ที่ /cache ก็ได้แล้ว เพียงแต่เราจะไม่ได้เป็น URL นั่้นเอง

วิธีนี้ ใช้ได้หลังจากกด Download ใน System Update แล้ว แต่ยังไม่ได้กด Restart & Install

กรณีที่ใช้ File Explorer เปิดไปที่ /cache คงไม่ต้องสอนเน๊อะ ถ้าใช้ Terminal Emulator ก็ shell เข้าไป สั่ง su เพื่อขอสิทธิ์ root ตามด้วยคำสั่งค้นหาไฟล์ใน /cache ดังนี้

ส่วนรูปด้านล่างนี้ เป็นผลการ shell เข้าไปแล้วค้นหาไฟล์ แต่ทำบน PC นะ

ดักข้อมูล OTA จาก /cache
ดักข้อมูล OTA จาก /cache

ส่วนเครื่องที่ยังไม่ได้ root ถ้า Unlock Bootloader แล้ว เพียงแค่ใช้ TWRP ในการเข้าถึง /cache

ถ้าใคร Flash TWRP ลงไปแทน Stock Recovery อยู่แล้ว ก็เปิดเข้า Recovery Mode ได้เลย แต่ถ้าใครไม่ได้ Flash ให้เข้าไปที่ Bootloader แล้วทำการ boot ด้วย TWRP โดยสั่งจาก PC โดยมีคำสั่งประมาณนี้ (ขอไม่ลงรายละเอียดนะ)

ใน TWRP ให้เลือกไปที่ Advanced แล้วเลือก File Manager เพื่อ Browse ไปยัง /cache เพื่อดูชื่อไฟล์ก็ได้ แต่ชื่อไฟล์อาจจะล้นจอนะ

ใช้ File Manager ของ TWRP ค้นหาไฟล์จาก /cache
ใช้ File Manager ของ TWRP ค้นหาไฟล์จาก /cache

หรือจะเลือก Advanced แล้วเลือก Terminal Command ก็จะเข้าถึงไฟล์ได้เหมือนกรณีเครื่องที่ root แล้วได้ละ

ใช้ Terminal ของ TWRP ค้นหาไฟล์จาก /cache
ใช้ Terminal ของ TWRP ค้นหาไฟล์จาก /cache

ก็จะได้ชื่อไฟล์ Update Package มาแร๊ววววววววว

 

Capture OTA Filename from Recovery Log

ความต้องการ

  • เครื่องที่ไม่ได้ root
    • Unlock Bootloader
    • Custom Recovery (TWRP)
  • เครื่องที่ root แล้ว #1
    • App Terminal
  • เครื่องที่ root แล้ว #2
    • เปิด USB debugging
    • PC ลง ADB Driver เรียบร้อย
    • Android SDK Platform-tools

วิธีนี้ เหมาะสำหรับเครื่องที่ root แล้ว เช่นเดียวกับวิธีก่อนหน้า เพียงแต่เราจะหาข้อมูลจาก Log การทำงานของ Recovery Mode ที่ผ่านมานั่นเอง

วิธีนี้ ใช้ได้กับเครื่องที่เคยอัพเดตแล้วเท่านั้น แต่อัพเดตผ่าน/ไม่ผ่าน ไม่เกี่ยวนะ

กรณีที่ใช้ File Explorer เปิดไปที่ /cache/recovery ก็จะพบไฟล์ดังรูป

ไฟล์ log จาก Recovery Mode เปิดด้วย App ES File Explorer
ไฟล์ log จาก Recovery Mode เปิดด้วย App ES File Explorer

ไฟล์ last_install จะมีข้อมูลที่ Recovery Mode ทำการติดตั้งไฟล์ใดไว้ในครั้งล่าสุด และผลการติดตั้งเป็นอย่างไร

ถ้าใช้ Terminal Emulator ก็ shell เข้าไป สั่ง su เพื่อขอสิทธิ์ root ตามด้วยคำสั่งแสดงข้อมูลในไฟล์ last_install ดังนี้

ดักข้อมูล OTA จาก /cache/recovery/last_install
ดักข้อมูล OTA จาก /cache/recovery/last_install

ส่วนไฟล์ last_log จะเป็น Log ที่ Recovery Mode ได้เขียนไว้ ซึ่งจะมีชื่อไฟล์ที่เคยติดตั้งอยู่เช่นกัน

ถ้าสังเกตุในรูปด้านบน จะเห็นไฟล์ชื่อ last_log.1 ซึ่งก็คือไฟล์ last_log ในครั้งก่อน ๆ ที่ ถูกเปลี่ยนชื่อมา และจะเพิ่มขึ้นเรื่อย ๆ เป็น .2 .3 ไป นั่นเอง

ถ้าเราสั่ง cat ชื่อไฟล์ตรง ๆ เหมือนกับการดูข้อมูลในไฟล์ last_install จะต้องมาสั่งทีละไฟล์ และข้อมูลในไฟล์ last_log จะค่อนข้างเยอะ จึงแนะนำคำสั่งต่อไปนี้ เพื่อดูข้อมูลในไฟล์ที่มีชื่อว่า last_log ทั้งหมด และสนใจเฉพาะบรรทัดที่มีชื่อไฟล์ที่นำมาติดตั้งเท่านั้น โดยใช้คำสั่งต่อไปนี้

ดักข้อมูล OTA จาก /cache/recovery/last_log
ดักข้อมูล OTA จาก /cache/recovery/last_log

สังเกตุดี ๆ จะเห็นว่า ในรูปด้านบน มีชื่อไฟล์ที่เคยติดตั้งในอดีตอยู่หลายไฟล์เลย ซึ่งมาจากไฟล์ last_log แต่ละไฟล์นั่นเอง

ถ้าใครตาดี จะเห็นจุดแปลก ๆ อยู่ 2 จุด คือ… ไฟล์ /cache/xxx.zip ซึ่งอันนี้เป็นไฟล์ที่ผมทดสอบอะไรเล่น ๆ เอง ส่วนอีกจุด สังเกตุไฟล์ 4 ไฟล์แรก จะเห็นว่าไฟล์ที่ติดตั้ง ไม่ได้อยู่ที่ /cache หากแต่ไปอยู่ใน Path data ของ App Nexus Update Checker นั่นเอง เห็นไม๊ App ผมมันอัพเดตได้จริง ๆ นะ

ส่วนเครื่องที่ยังไม่ได้ root แต่ Unlock Bootloader แล้ว ก็ใช้ TWRP เข้าไป Copy ไฟล์ last_install และ last_log ออกมาก็ได้ หรือจะใช้ Terminal Command แล้วใช้คำสั่งแบบเดียวกับด้านบนก็ได้เช่นกัน

ใช้ Terminal ของ TWRP ค้นหาไฟล์จาก /cache/recovery/last_install
ใช้ Terminal ของ TWRP ค้นหาไฟล์จาก /cache/recovery/last_install

ก็จะได้ชื่อไฟล์ Update Package มาได้เหมือนกัน

 

OTA Filename to OTA URL

กรณีที่ได้ชื่อไฟล์มา ให้ไปหา OTA URL ของรุ่นเดียวกันใน Version ก่อน แล้วนำชื่อไฟล์ที่ดักมาได้ ไปแทน ก็จะได้ OTA URL แล้วล่ะ ไม่ต้องสอนก็ได้เน๊อะ~!!

 

ก่อนจบ…

เมื่อดัก OTA URL (หรือชื่อไฟล์) มาได้แล้ว อย่าลืมไปโพสบอกใน XDA ด้วยนะ จะได้มีชื่อติดใน Credit กะเค้าบ้างงง

ถ้าหากระทู้รวม OTA ของรุ่นต่าง ๆ ไม่เจอ มาถามก็ได้นะ หรือจะฝากผมไปโพสก็ได้

เอาละ ใครอ่านถึงตรงนี้แล้ว Level Up กันแล้วนะ แต่… จะเป็น OTA Hunter ตัวจริงได้ ต้องแสดงผลงานให้เห็นกันซักนิด ว่าแล้วก็… ลงมือทดลองดักข้อมูลในเครื่องตัวเอง แล้วมาโพสโชว์กันเลยยยย

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.