- FreeDroidWarn คือไลบรารี Android แบบโอเพนซอร์สที่สร้างขึ้นเพื่อตอบสนองต่อนโยบาย การยืนยันตัวตนนักพัฒนา ใหม่ของ Google
- Google มีแผนจะกำหนดให้แอปที่อยู่นอก Play Store ต้อง ส่งข้อมูลยืนยันตัวตนนักพัฒนา ด้วยเช่นกัน ตั้งแต่ปี 2026/2027
- ไลบรารีนี้มีฟังก์ชันแจ้งเตือนเพื่อ เตือนว่าแอปนั้นอาจไม่สามารถทำงานบนอุปกรณ์ Android ที่ได้รับการรับรองได้อีกต่อไป หากนักพัฒนาไม่ส่งข้อมูลยืนยันตัวตนให้ Google โดยตรง
- เป็นโซลูชันที่มีประโยชน์สำหรับ นักพัฒนาแอปที่ไม่เห็นด้วยกับนโยบายนี้ ด้วยเหตุผลด้านความปลอดภัยและความเป็นส่วนตัว
- สามารถนำไปใช้และปรับแต่งได้อย่างอิสระภายใต้ สัญญาอนุญาต Apache-2.0
ภาพรวมของ FreeDroidWarn
- FreeDroidWarn เป็นไลบรารีที่สร้างขึ้นเพื่อตอบสนองต่อนโยบายของ Google ที่จะบังคับใช้ การยืนยันตัวตนนักพัฒนา กับ แอป Android ที่แจกจายนอก Play Store ตั้งแต่ปี 2026/2027
- ไลบรารีนี้มีฟังก์ชันผ่าน หน้าต่างแจ้งเตือน เพื่อแจ้งผู้ใช้ว่าในอนาคตแอปดังกล่าวอาจไม่สามารถทำงานบนอุปกรณ์ Android ที่ได้รับการรับรองได้อีกต่อไป
ฟีเจอร์หลักและวัตถุประสงค์
- ตามนโยบายของ Google ตั้งแต่ปี 2026/2027 เป็นต้นไป นักพัฒนาแอปบน อุปกรณ์ Android ที่ได้รับการรับรองทั้งหมด จะมีหน้าที่ต้อง ส่งข้อมูลยืนยันตัวตนส่วนบุคคลให้ Google โดยตรง
- นักพัฒนาที่ไม่ยอมรับข้อกำหนดนี้จำเป็นต้องจัดเตรียม การแจ้งยุติการรองรับแอปและการเปลี่ยนแปลงนโยบายให้ผู้ใช้ ด้วยตนเอง
- FreeDroidWarn ช่วยให้นักพัฒนาสามารถอธิบาย การเปลี่ยนแปลงนโยบายและความเป็นไปได้ที่จะไม่สามารถใช้งานได้ในอนาคต แก่ผู้ใช้ได้อย่างชัดเจนในสถานการณ์เช่นนี้
วิธีใช้งาน
- แสดง การแจ้งเตือน โดยเรียกเมธอด
FreeDroidWarn.showWarningOnUpgrade(this, BuildConfig.VERSION_CODE); ภายใน onCreate ของแอป
- ไลบรารีนี้สามารถเพิ่มเข้าไปได้อย่างง่ายดาย โดยไม่ต้องกรอกข้อมูลส่วนตัวเพิ่มเติม และใช้ข้อความเตือนเพื่อแจ้งผู้ใช้เกี่ยวกับนโยบายการยืนยันตัวตนนักพัฒนาใหม่ของ Google
สัญญาอนุญาตและข้อมูลอื่น ๆ
- เผยแพร่ภายใต้ สัญญาอนุญาต Apache V2.0 จึงสามารถนำไปใช้ได้อย่างอิสระทั้งในโปรเจกต์เชิงพาณิชย์และโอเพนซอร์ส
- โค้ดทั้งหมดเปิดเผยบน GitHub และทุกคนสามารถปรับปรุงหรือปรับแต่งได้
ความสำคัญและข้อดีของ FreeDroidWarn
- เป็น ทางเลือกสำคัญ สำหรับนักพัฒนาที่ไม่เห็นด้วยกับ นโยบายการยืนยันตัวตนนักพัฒนา ของ Google หรือไม่ต้องการให้ข้อมูลยืนยันตัวตนเพิ่มเติมด้วยเหตุผลด้านความเป็นส่วนตัวและความปลอดภัย
- เมื่อเทียบกับไลบรารีอื่น จุดเด่นคือมี API ที่เรียบง่าย โครงสร้างแบบโอเพนซอร์ส และการแนะนำผู้ใช้ที่เฉพาะเจาะจงและชัดเจน ทำให้เป็นตัวเลือกที่ชาญฉลาด
- มีประโยชน์อย่างมากโดยเฉพาะสำหรับนักพัฒนาที่ต้องการนำ การแจ้งเตือนเชิงป้องกัน มาใช้เพื่อลดความสับสนของผู้ใช้แอประหว่างช่วงเปลี่ยนผ่านของนโยบาย
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ประเด็นข้อจำกัดผู้ใช้นี้คล้ายกับกรณี Manifest V3 ของ Chromium
การรับมือทางเทคนิคต่อการละเมิดความเป็นเจ้าของมีขีดจำกัด และสุดท้ายก็เป็นภาพที่บริษัทยักษ์ใหญ่ต้องการ จึงจำเป็นต้องมีการออกกฎหมายในท้ายที่สุด
ถ้าไลบรารีนี้ใช้สัญญาอนุญาต GPLv3 ก็อาจยิ่งจำกัดการแพร่หลาย ดูเหมือนจะไม่มีคุณค่าที่โดดเด่นมากนักนอกจากเรื่องการแปล นักพัฒนาแอปส่วนใหญ่ก็มี pipeline การแปลของตัวเองอยู่แล้ว และโค้ดก็เรียบง่ายมากจนยังน่าสงสัยว่าจะถึงเกณฑ์การคุ้มครองลิขสิทธิ์หรือไม่
is-evenลงใน npm เท่าไรนักGoogle ประกาศว่าเริ่มตั้งแต่ปี 2026/2027 เป็นต้นไป แอปทั้งหมดบนอุปกรณ์ Android ที่ผ่านการรับรองจะต้องให้ผู้พัฒนาส่งข้อมูลส่วนตัว ผู้พัฒนาแอปรายนี้ไม่ยอมรับเงื่อนไขดังกล่าว ดังนั้นหลังจากนั้นแอปนี้จะไม่ทำงานบน Android ที่ผ่านการรับรอง อย่างน้อยก็ถือว่าเป็นการเตือนผู้ใช้
GPLv3 ดูเข้มงวดเกินไปสำหรับโปรเจกต์แบบนี้ การกระจายข้อความสำคัญน่าจะสำคัญกว่าเสรีภาพของโค้ด
จังหวะมาพอดี ฉันคงแก้ด้วย dialog ง่าย ๆ โดยไม่เพิ่ม dependency ใหม่ แต่ตัวข้อความสำคัญมาก ฉันสงสัยว่าเมื่อมีการเพิ่มการตรวจสอบใหม่ในอนาคต ทางหนีอย่าง ADB+Unknown sources จะยังเปิดให้ผู้ใช้ที่ไม่รูตใช้อยู่เหมือนเดิมหรือไม่
ถ้าไลบรารีนี้เป็นสัญญาอนุญาต GPL ก็ทำให้ทั้งโปรเจกต์ต้องเป็น GPL ไปด้วย จึงเป็นภาระหนักสำหรับการใช้งานจริง
Google พูดไว้ว่าจะมีทางออกให้กับนักเรียนหรือนักพัฒนาแบบงานอดิเรก ฉันเลยหวังว่าท้ายที่สุดอาจเป็นแค่แตะ label 5 ครั้งเพื่อเปิด sideloading
ฟังดูเหมือนคำตอบคือ “หลีกเลี่ยง Google โดยเฉพาะอย่าซื้อผลิตภัณฑ์หรือโทรศัพท์ของ Google” เงินคือภาษาของบริษัท และบิ๊กเทคมักจะนำหน้ากฎหมายไปหลายก้าวเสมอ
แค่จะขึ้น dialog หนึ่งอันก็ไม่จำเป็นต้องเพิ่ม dependency ถึงขั้นนั้น เห็นด้วยว่า Google กำลังทำให้ Android มีอิสระน้อยลงเรื่อย ๆ แต่แค่แสดง dialog ก็น่าจะพอแล้ว
ifสองแขนงมีโค้ดที่เกือบเหมือนกันซ้ำอยู่ ตัวอย่างโค้ด