การวิเคราะห์บิลด์ Android Q ที่รั่วไหลออกมาแสดงการอัปเกรดความเป็นส่วนตัวเพิ่มเติมใน Android: การบล็อกการอ่านคลิปบอร์ดในพื้นหลัง การป้องกันสื่อที่ดีขึ้น และอื่นๆ
Android เวอร์ชันใหม่ทุกเวอร์ชันมาพร้อมกับฟีเจอร์ใหม่ ซึ่งหมายความว่า Android จำเป็นต้องได้รับการอนุญาตใหม่เพื่อเข้าถึงฟีเจอร์เหล่านี้ ฉันพบสิทธิ์ใหม่ๆ มากมายในเฟรมเวิร์กของ Android Q (ไม่ใช่ทั้งหมดที่ฉันจะกล่าวถึงในบทความนี้ เนื่องจากหลายสิทธิ์ไม่น่าสนใจ) การอนุญาตบางอย่างที่ฉันพบไม่มีคำอธิบายใด ๆ แต่ชื่อของพวกเขาก็ค่อนข้างอธิบายได้ในตัวอยู่แล้ว มาเจาะลึกและพูดคุยเกี่ยวกับการปรับปรุงความเป็นส่วนตัวเบื้องหลังใหม่ใน Android Q รวมถึงคุณสมบัติที่น่าสนใจอื่น ๆ ที่ฉันพบ
ขอขอบคุณเป็นพิเศษสำหรับซอฟต์แวร์ PNF ที่ให้ใบอนุญาตแก่เรา โปรแกรมถอดรหัส JEB. JEB Decompiler เป็นเครื่องมือวิศวกรรมย้อนกลับระดับมืออาชีพสำหรับแอปพลิเคชัน Android
การบล็อกการเข้าถึงคลิปบอร์ดในพื้นหลัง
คุณรู้หรือเปล่าว่า ทุกแอปใน Android สามารถอ่านคลิปบอร์ดของคุณได้และคุณไม่จำเป็นต้องให้สิทธิ์รันไทม์แก่พวกเขาเพื่อทำเช่นนั้นใช่ไหม ผู้คนจำนวนมากอาจคัดลอกข้อมูลที่ละเอียดอ่อน เช่น ชื่อผู้ใช้ รหัสผ่าน ที่อยู่ ฯลฯ ตลอดเวลา ดังนั้นจึงเป็นเรื่องง่ายสำหรับแอปที่จะขูดข้อมูลนี้ในเบื้องหลัง นั่นเป็นเหตุผลว่าทำไมแอปจัดการรหัสผ่านจำนวนมากถึงชอบ
คีพาส มีคีย์บอร์ดของตัวเองที่คุณสามารถใช้เพื่อเลี่ยงผ่านตัวจัดการคลิปบอร์ดของ Android แอปตัวจัดการรหัสผ่านมักจะล้างคลิปบอร์ดให้คุณหลังจากที่คุณคัดลอกและวางสิ่งใดๆ เหตุผลที่แอป Android จำเป็นต้องอ่านคลิปบอร์ดก็คือแอปไม่สามารถยอมรับข้อความใดๆ จากคลิปบอร์ดได้หากไม่มี ซึ่งหมายความว่าคุณไม่สามารถวางข้อความใดๆ ที่คุณคัดลอกไว้ได้ โชคดีมากที่ Android Q กำลังมองหาการเปลี่ยนแปลงมีการเพิ่มการอนุญาตใหม่ที่เรียกว่า “READ_CLIPBOARD_IN_BACKGROUND
” ดูเหมือนว่าจะทำตามที่กล่าวไว้: จำกัดสิ่งที่แอปสามารถอ่านคลิปบอร์ดในเบื้องหลังได้ ระดับการป้องกันของการอนุญาตนี้คือ "ลายเซ็น" ซึ่งหมายความว่าเฉพาะแอปที่ลงนามโดย OEM เท่านั้นที่สามารถให้สิทธิ์นี้ได้
<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>
รองรับการดาวน์เกรดแอพหรือไม่?
คุณเคยติดตั้งการอัปเดตสำหรับแอปบน Google Play แล้วรู้สึกเสียใจทันทีหรือไม่? บางครั้งนักพัฒนาจะพุชการอัปเดตที่ทำลายสิ่งที่พวกเขาไม่คาดคิด แต่เมื่อพุชและติดตั้งการอัปเดตแล้วก็สายเกินไปที่จะทำอะไรกับมัน นักพัฒนาซอฟต์แวร์ต้องออกโปรแกรมแก้ไขด่วนอย่างรวดเร็ว และผู้ใช้จำเป็นต้องหยุดใช้แอปจนกว่าจะมีการอัปเดต หรือถอนการติดตั้งแอปและไซด์โหลดเวอร์ชันเก่า ไม่มีวิธีดาวน์เกรดแอปเว้นแต่คุณจะมีอุปกรณ์ที่รูทแล้วและมีแอปที่คล้ายกัน TitaniumBackupเนื่องจากตัวจัดการแพ็คเกจของ Android บล็อกคุณไม่ให้ติดตั้งแอปเวอร์ชันเก่า มีเหตุผลที่ดีในการทำเช่นนั้นเนื่องจากการติดตั้งแอปเวอร์ชันเก่าอาจทำให้เกิดความเสียหายได้หากเป็นเช่นนั้น ข้อมูลของแอปไม่ได้รับการล้างหรืออาจทำให้ผู้ใช้ตกอยู่ในอันตรายหากเวอร์ชันเก่ามีความเสี่ยงต่อความปลอดภัย ข้อบกพร่อง
แม้ว่าเราจะไม่ทราบแน่ชัดว่า Google จะอนุญาตให้ผู้ใช้ย้อนกลับแอปไปเป็นเวอร์ชันเก่าหรือไม่ แต่เราพบการอนุญาตและคำสั่งหลายประการใน Android Q ที่แนะนำว่าเป็นไปได้ อันดับแรกสิ่งใหม่”PACKAGE_ROLLBACK_AGENT
" และ "MANAGE_ROLLBACKS
” สิทธิ์แนะนำว่าแอป Market ที่ติดตั้งไว้ล่วงหน้าสามารถทำหน้าที่เป็นตัวแทนในการจัดการการย้อนกลับเวอร์ชันของแอปพลิเคชันได้ การอนุญาตก่อนหน้านี้คือ "ลายเซ็น" ในขณะที่อย่างหลังคือ "ผู้ติดตั้ง" เหนือ "ลายเซ็น" ดังนั้นนี่จึงหมายถึงเฉพาะแอปที่ลงนามบนแพลตฟอร์มเท่านั้นที่สามารถ ติดตั้งแอป (โดยทั่วไปจะมีเพียงตัวจัดการแพ็คเกจ, Google Play Store หรือร้านค้าแอปบุคคลที่หนึ่งอื่น ๆ ขึ้นอยู่กับอุปกรณ์) สามารถใช้สิทธิ์เหล่านี้ได้ มีการเพิ่มความตั้งใจในการออกอากาศที่ได้รับการป้องกันใหม่สองรายการ: “PACKAGE_ENABLE_ROLLBACK
" และ "PACKAGE_ROLLBACK EXECUTED
” การออกอากาศเหล่านี้ไม่สามารถส่งโดยแอปของบุคคลที่สามได้ และมีแนวโน้มที่จะทำให้แอปที่ได้รับผลกระทบทราบเมื่อดาวน์เกรดแล้ว (มาก เช่นการบอกแอพเมื่อมีการอัปเดตทำให้มีโอกาสที่จะแสดงข้อความในการเริ่มครั้งถัดไป) สุดท้ายนี้ มีการเพิ่มแฟล็กใหม่ลงใน “pm install
” คำสั่งเชลล์ ธงที่เรียกว่า “--enable-rollback
” อาจให้คุณย้อนกลับแอปพลิเคชันไปเป็นเวอร์ชันก่อนหน้าได้ ฉันไม่สามารถทำให้มันทำงานได้
<protected-broadcast android: name="android.intent.action.PACKAGE_ENABLE_ROLLBACK"/>
<protected-broadcast android: name="android.intent.action.PACKAGE_ROLLBACK_EXECUTED"/>
<permissionandroid: name="android.permission.PACKAGE_ROLLBACK_AGENT"android: protectionLevel="signature"/>
<permissionandroid: name="android.permission.MANAGE_ROLLBACKS"android: protectionLevel="installer|signature"/>
การรักษาความปลอดภัยไฟล์บนที่จัดเก็บข้อมูลภายนอก
การจัดเก็บข้อมูลใน Android เกี่ยวข้องกับ “ที่จัดเก็บข้อมูลภายใน” (/ข้อมูลไม่รวม /data/media) และ “ที่จัดเก็บข้อมูลภายนอก” (/data/media และการ์ด SD หรือไดรฟ์ USB ที่ติดตั้งอยู่) APK และข้อมูลที่ละเอียดอ่อนที่สุดจะถูกจัดเก็บไว้ในที่จัดเก็บข้อมูลภายใน ในขณะที่สื่อที่ใช้ร่วมกัน เช่น เอกสาร รูปภาพ วิดีโอ ฯลฯ ถูกจัดเก็บไว้ในที่จัดเก็บข้อมูลภายนอก ตามค่าเริ่มต้น แอปสามารถอ่านและเขียนไฟล์ไปยังไดเร็กทอรีเดียวในที่จัดเก็บข้อมูลภายนอกเท่านั้น: /data/media/[user]/Android/data/[package_name] (หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับพฤติกรรมนี้ ฉันขอแนะนำให้คุณอ่านของฉัน บทความเกี่ยวกับ sdcardfs ใน Android Oreo) เมื่อผู้ใช้ให้สิทธิ์แก่แอปภายใต้กลุ่มสิทธิ์การจัดเก็บข้อมูลภายนอก (READ_EXTERNAL_STORAGE
หรือ WRITE_EXTERNAL_STORAGE
) จากนั้นแอปจะสามารถอ่านหรือเขียนไฟล์ใดๆ ในที่จัดเก็บข้อมูลภายนอกได้ นี่เป็นปัญหาเนื่องจากคุณอนุญาตให้แอปรวบรวมข้อมูลจำนวนมากเกี่ยวกับคุณเมื่อคุณเพียงต้องการให้แอปอ่านหรือเขียนไฟล์บางไฟล์ เพื่อแก้ไขปัญหานี้ ดูเหมือนว่า Google จะแนะนำสิทธิ์ที่เกี่ยวข้องกับการจัดเก็บข้อมูลภายนอกใหม่สองสามรายการใน Android Q การอนุญาตจะเข้าประตูคุณสมบัติดังต่อไปนี้:
- ความสามารถในการอ่านสถานที่จากสื่อของคุณ (มีแนวโน้มว่าจะบล็อกการเข้าถึงข้อมูลเมตาของรูปภาพตามค่าเริ่มต้น)
- ความสามารถในการเข้าถึงไฟล์เพลง
- ความสามารถในการเข้าถึงภาพถ่าย
- ความสามารถในการเข้าถึงวิดีโอ
สำหรับแอพที่มีอยู่แล้ว READ_EXTERNAL_STORAGE
หรือ WRITE_EXTERNAL_STORAGE
การอนุญาตก่อนการอัปเดต Android Q พวกเขาจะได้รับสิ่งใหม่ อ่าน สิทธิ์ แต่ไม่ใช่ของใหม่ เขียน สิทธิ์ เช่น แอปที่ได้รับการอนุญาตแล้ว READ_EXTERNAL_STORAGE
โดยผู้ใช้จะได้รับสิทธิ์โดยอัตโนมัติ READ_MEDIA_IMAGES
ได้รับอนุญาตแต่ไม่ใช่ WRITE_MEDIA_IMAGES
การอนุญาต.
สตริงที่เกี่ยวข้องจาก framework-res ของ Android Q
<stringname="permgroupdesc_aural">access your musicstring>
<stringname="permgrouplab_visual">Photos & Videosstring>
<stringname="permgrouprequest_aural">Allow <b>%1$s</b> to access your music?string>
<stringname="permgroupdesc_visual">access your photos & videosstring>
<stringname="permgrouplab_activityRecognition">Activity recognitionstring>
<stringname="permgrouplab_aural">Musicstring>
<stringname="permdesc_videoRead">Allows the app to read your video collection.string>
<stringname="permdesc_videoWrite">Allows the app to modify your video collection.string>
<stringname="permdesc_imagesRead">Allows the app to read your photo collection.string>
<stringname="permdesc_imagesWrite">Allows the app to modify your photo collection.string>
<stringname="permdesc_audioRead">Allows the app to read your music collection.string>
<stringname="permdesc_audioWrite">Allows the app to modify your music collection.string>
<stringname="permlab_audioRead">read your music collectionstring>
<stringname="permlab_audioWrite">modify your music collectionstring>
<stringname="permdesc_mediaLocation">Allows the app to read locations from your media collection.string>
"android.permission.READ_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>"android.permission.WRITE_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>
อ่านเพิ่มเติม
การกลับมาของการเข้าถึงตำแหน่งในเบื้องหลัง
Android Oreo และ Android 9 Pie ก้าวไปข้างหน้าอย่างมากในการรักษาความเป็นส่วนตัวของผู้ใช้ แต่ผู้ใช้บางคนรู้สึกว่า Google ทำสิ่งต่าง ๆ มากเกินไป พื้นที่หนึ่งที่อาจถือเป็นการถดถอยของคุณลักษณะอยู่ในนั้น การเข้าถึงตำแหน่งพื้นหลัง. การเข้าถึงตำแหน่งใน Android Oreo และใหม่กว่านั้นถูกควบคุมอย่างเข้มงวดหากไม่ได้ปิดการทำงานโดยสิ้นเชิงสำหรับแอปที่ทำงานในพื้นหลัง ดังนั้น แอพจะต้องอยู่เบื้องหน้าหรือมีบริการที่ทำงานอยู่เบื้องหน้าหากต้องการสำรวจอุปกรณ์อย่างต่อเนื่อง ที่ตั้ง. ซึ่งจะบล็อกแอปไม่ให้สอดแนมตำแหน่งของคุณในเบื้องหลัง แต่ยังบล็อกผู้ใช้ไม่ให้ทำแผนที่ตำแหน่งของตนเองโดยใช้แอปในเบื้องหลังอีกด้วย นี่เป็นปัญหาที่เราพบในบทความแยกต่างหาก และดูเหมือนว่า Google กำลังเพิ่มการอนุญาตใหม่ใน Android Q เพื่อแก้ไขข้อกังวลของนักพัฒนาและผู้ใช้เหล่านี้
ใน Android Q มีการเพิ่มการอนุญาตใหม่เพื่อให้แอปสามารถเข้าถึงตำแหน่งของอุปกรณ์ในพื้นหลังได้ คำอธิบายการอนุญาตสำหรับผู้ใช้เตือนว่า "แอปจะสามารถเข้าถึงตำแหน่งได้ตลอดเวลา แม้ว่าคุณจะไม่ได้ใช้แอปก็ตาม" การอนุญาตนี้อาจ ได้รับการอนุญาต "เพิ่มเติมสำหรับตำแหน่งโดยประมาณหรือตำแหน่งที่แน่นอน" เพื่อให้แอป "สามารถเข้าถึงตำแหน่งในขณะที่ทำงานในพื้นหลัง" ในทางตรงกันข้าม, การอนุญาตตำแหน่งแบบคร่าวๆ สามารถรับตำแหน่งของคุณตามแหล่งที่มาของเครือข่าย เช่น เสาสัญญาณมือถือหรือเครือข่าย Wi-Fi เท่านั้น แต่เฉพาะเมื่อแอปอยู่ใน เบื้องหน้า
สตริงที่เกี่ยวข้องจาก framework-res ของ Android Q
<stringname="permgroupbackgroundrequest_location">Always allow <b>%1$s</b> to access this device’s location?string>
<stringname="permgroupbackgroundrequestdetail_location">The app will always have access to the location, even when you’re not using the app.string>
"permdesc_accessBackgroundLocation">If this is granted additionally to the approximate or precise location access the app can access the location while running in the background.</string>
"permdesc_accessCoarseLocation">This app can get your location based on network sources such as cell towers and Wi-Fi networks, but only when the app is in the foreground. These location services must be turned on and available on your phone for the app to be able to usethem.string>
"android.permission.ACCESS_FINE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>
"android.permission.ACCESS_COARSE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>
อ่านเพิ่มเติม
การรับรู้กิจกรรมทางกาย
เพิ่มการอนุญาตใหม่ใน Android Q ซึ่งอนุญาตให้แอป “จดจำกิจกรรมการออกกำลังกายของคุณ” ในทางเทคนิคแล้วสิ่งนี้ไม่ใช่เรื่องใหม่ตั้งแต่นั้นมา เป็นส่วนหนึ่งของบริการ Google Play แล้วแต่อาจหมายความว่า Google จะแยกการอนุญาตจาก Play Services เนื่องจากบริการ Google Play เป็นส่วนสำคัญในการมอบฟีเจอร์หลักของ Android จึงเป็นเรื่องดีที่ได้เห็นพลังบางส่วนที่มอบให้กับ AOSP
<stringname="permgroupdesc_activityRecognition">recognize activitystring>
<stringname="permgrouprequest_activityRecognition">Allow <b>%1$s</b> to recognize your physical activity?string>
<stringname="permdesc_activityRecognition">This app can recognize your physical activity.string>
สำหรับข่าวสาร Android Q เพิ่มเติม โปรดดูของเรา แท็ก พร้อมข่าวสารล่าสุดเรียงตามวันที่ เราเพิ่งเผยแพร่บทความที่มีหลักฐานมากมายที่ชี้ไปที่ Google กำลังดำเนินการอยู่ รองรับฮาร์ดแวร์การตรวจสอบใบหน้าที่เหมือนกับ Face ID ในระบบปฏิบัติการ Android Q เรายังมี การลงมือปฏิบัติจริงในช่วงแรกของ Android Q build ที่รั่วไหลออกมา (และยังมีวิดีโอ) ซึ่งคุณควรลองดูที่นี่ เราจะโพสต์สิ่งที่เราค้นพบเพิ่มเติมจาก Android Q build รุ่นแรกที่เราได้รับ ดังนั้นโปรดคอยติดตาม