เมื่อ Store หรือโปรแกรมติดตั้งเป็นผู้ติดตั้งแอป ระบบจะถือว่า Store หรือโปรแกรมติดตั้งนั้นเป็น "โปรแกรมติดตั้งที่บันทึกไว้" ซึ่งหมายถึงโปรแกรมติดตั้งล่าสุดของแอป ก่อน Android 14 ระบบ Android อนุญาตให้ Store หรือโปรแกรมติดตั้งแอปอื่นเป็นโปรแกรมติดตั้งที่บันทึกไว้และอัปเดตแอปได้โดยไม่ต้องแจ้งให้ผู้ใช้ทราบ
ใน Android 14 โปรแกรมติดตั้งเริ่มต้นของแอปสามารถประกาศตัวเองเป็น "เจ้าของการอัปเดต" และเป็นเจ้าของการอัปเดตแอปได้ หากโปรแกรมติดตั้งอื่นพยายามอัปเดตแอป ผู้ใช้จะมีโอกาสอนุมัติการอัปเดตใหม่ก่อนที่จะดำเนินการต่อ
เลือกใช้แพ็กเกจเพื่ออัปเดตการเป็นเจ้าของ
หากต้องการประกาศว่า Store หรือโปรแกรมติดตั้งเป็นเจ้าของแพ็กเกจแอป ให้ใส่แท็ก update-ownership ใน sysconfig XML สำหรับแต่ละแพ็กเกจดังนี้
<update-ownership package="com.example.application" installer="com.example.installer" />
ในตัวอย่างนี้ com.example.application คือแพ็กเกจแอปที่จะเป็นเจ้าของ และ com.example.installer คือเจ้าของแพ็กเกจ เมื่อเลือกใช้แพ็กเกจเพื่ออัปเดตการเป็นเจ้าของ Store หรือโปรแกรมติดตั้งที่มีสิทธิ์อื่นๆ จะต้อง
จัดการเจ้าของการอัปเดตและขอความยินยอมของผู้ใช้เพื่ออัปเดตแอป
เลือกไม่ใช้แพ็กเกจเพื่อเปลี่ยนแปลงการเป็นเจ้าของ
คุณสามารถให้ Store หรือโปรแกรมติดตั้งเลือกไม่ใช้แพ็กเกจย่อยเพื่อเปลี่ยนแปลงเจ้าของการอัปเดตได้โดยระบุรายการที่ไม่อนุญาตใน APK การใส่แพ็กเกจลงในรายการนี้จะทำให้ไม่มี Store หรือโปรแกรมติดตั้งใดขอเป็นเจ้าของการอัปเดตแพ็กเกจได้
วิธีเลือกไม่ใช้แพ็กเกจเพื่อให้ Store หรือโปรแกรมติดตั้งอื่นอัปเดตได้
ใส่พร็อพเพอร์ตี้ต่อไปนี้ในไฟล์
AndroidManifest.xmlของ Store หรือโปรแกรมติดตั้งเดิม<application …> <property android:name="android.app.PROPERTY_LEGACY_UPDATE_OWNERSHIP_DENYLIST" android:resource="@xml/legacyOwnershipDenylist" /> </application>ตัวอย่างนี้อ้างอิงรายการที่ไม่อนุญาต XML ที่ชื่อว่า
legacyOwnershipDenylistสร้างรายการที่ไม่อนุญาตเป็นทรัพยากร XML ดิบในรูปแบบต่อไปนี้
<deny-ownership>com.example.app1</deny-ownership> <deny-ownership>com.example.app2</deny-ownership>
หาก Store หรือโปรแกรมติดตั้งขอเป็นเจ้าของแพ็กเกจในรายการที่ไม่อนุญาต ระบบจะไม่ให้สิทธิ์การเป็นเจ้าของและแพ็กเกจจะยังคงติดตั้งอยู่ แต่จะไม่มีโปรแกรมติดตั้งใดเป็นเจ้าของ นอกจากนี้ แอปในรายการที่ไม่อนุญาตจะไม่มีใครเป็นเจ้าของได้ ไม่ว่าจะเป็นโปรแกรมติดตั้งใดก็ตาม
ชุดแพ็กเกจในรายการนี้สามารถเปลี่ยนแปลงได้ผ่านการอัปเดต APK ของโปรแกรมติดตั้งที่แสดงรายการ ระบบจะล้างการเป็นเจ้าของที่ตั้งไว้สำหรับแพ็กเกจที่เพิ่มลงในรายการที่ไม่อนุญาตในภายหลังเมื่อมีการอัปเดตโปรแกรมติดตั้ง ดังนั้น การอัปเดตแพ็กเกจแอปในรายการที่ไม่อนุญาตในภายหลังจึงไม่จำเป็นต้องมีการโต้ตอบของผู้ใช้
จัดการเจ้าของการอัปเดตและขอความยินยอมของผู้ใช้
ใน Android 14 แม้ว่า Store หรือโปรแกรมติดตั้งแอปจะมีสิทธิ์
android.permission.INSTALL_PACKAGES ก็ยังต้องจัดการสถานะ
STATUS_PENDING_USER_ACTION
หากต้องการอัปเดตแอปที่มี Store หรือโปรแกรมติดตั้งอื่นเป็นเจ้าของการอัปเดต
แอปตัวอย่าง
InstallAPKSessionApi.javaยังแสดงวิธีจัดการSTATUS_PENDING_USER_ACTIONด้วย
กำหนดการเป็นเจ้าของสำหรับแอปที่โหลดไว้ล่วงหน้า
โดยปกติแล้วแอปที่โหลดไว้ล่วงหน้าจะไม่มีโปรแกรมติดตั้งที่เฉพาะเจาะจงเป็นเจ้าของ แต่ระบบจะกำหนดเจ้าของใหม่ให้กับแอปที่โหลดไว้ล่วงหน้าโดยใช้การกำหนดค่าระบบตามที่ แสดงใน เลือกใช้แพ็กเกจเพื่ออัปเดตการเป็นเจ้าของ