กำหนดค่าและจัดการการอัปเดตการเป็นเจ้าของสำหรับแอป กำหนดค่าและจัดการการอัปเดตการเป็นเจ้าของสำหรับแอป

เมื่อร้านค้าหรือผู้ติดตั้งติดตั้งแอป ร้านค้าหรือผู้ติดตั้งจะถือเป็น "ผู้ติดตั้งของบันทึก" ซึ่งหมายถึงผู้ติดตั้งแอปคนสุดท้าย ก่อน Android 14 นั้น Android อนุญาตให้ร้านค้าหรือผู้ติดตั้งแอปรายอื่นเป็นผู้ติดตั้งที่บันทึกและอัปเดตแอปโดยไม่ต้องแจ้งให้ผู้ใช้ทราบ

ใน Android 14 ผู้ติดตั้งแอปครั้งแรกสามารถประกาศตัวเองเป็น "เจ้าของการอัปเดต" และอัปเดตแอปของตนเองได้ หากผู้ติดตั้งรายอื่นพยายามอัปเดตแอป ผู้ใช้จะได้รับโอกาสในการอนุมัติการอัปเดตใหม่ก่อนที่จะดำเนินการต่อ

เลือกใช้แพ็คเกจเพื่ออัปเดตความเป็นเจ้าของ

หากต้องการประกาศว่าร้านค้าหรือผู้ติดตั้งเป็นเจ้าของแพ็คเกจแอป ให้รวมแท็ก update-ownership ใน sysconfig XML ของคุณสำหรับแต่ละแพ็คเกจดังนี้:

<update-ownership package="com.example.application" installer="com.example.installer" />

ในตัวอย่างนี้ com.example.application คือแพ็คเกจแอปที่จะเป็นเจ้าของ และ com.example.installer เป็นเจ้าของแพ็คเกจ เมื่อเลือกใช้แพ็คเกจเพื่ออัปเดตความเป็นเจ้าของ ร้านค้าหรือผู้ติดตั้งที่ได้รับสิทธิ์อื่นๆ จะต้อง จัดการเจ้าของการอัปเดตและรับความยินยอมจากผู้ใช้ ในการอัปเดตแอป

เลือกแพ็คเกจออกจากการเปลี่ยนแปลงความเป็นเจ้าของ

คุณสามารถให้ร้านค้าหรือผู้ติดตั้งของคุณเลือกชุดย่อยของแพ็คเกจไม่ให้อัปเดตการเปลี่ยนแปลงของเจ้าของได้โดยระบุรายชื่อที่ปฏิเสธใน APK การรวมแพ็คเกจไว้ในรายการนี้ ไม่มีร้านค้าหรือผู้ติดตั้งใดสามารถร้องขอการอัพเดตความเป็นเจ้าของแพ็คเกจได้

หากต้องการเลือกไม่ให้ร้านค้าหรือผู้ติดตั้งอื่นอัปเดตแพ็คเกจได้:

  1. รวมคุณสมบัติต่อไปนี้ในร้านค้าดั้งเดิมหรือไฟล์ AndroidManifest.xml ของผู้ติดตั้ง:

    <application …>
      <property android:name="android.app.PROPERTY_LEGACY_UPDATE_OWNERSHIP_DENYLIST"
                android:resource="@xml/legacyOwnershipDenylist" />
    </application>
    

    ตัวอย่างนี้อ้างอิงถึงรายการปฏิเสธ XML ที่เรียกว่า legacyOwnershipDenylist

  2. สร้างรายการปฏิเสธเป็นทรัพยากร XML แบบดิบด้วยรูปแบบต่อไปนี้:

    <deny-ownership>com.example.app1</deny-ownership>
    <deny-ownership>com.example.app2</deny-ownership>
    

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

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

จัดการเจ้าของการอัปเดตและรับความยินยอมจากผู้ใช้

เมื่อใช้ Android 14 แม้ว่าร้านค้าหรือผู้ติดตั้งแอปจะมีสิทธิ์ android.permission.INSTALL_PACKAGES แต่ก็ยังต้องจัดการสถานะ STATUS_PENDING_USER_ACTION หากต้องการอัปเดตแอปที่มีการอัปเดตเป็นของร้านค้าหรือผู้ติดตั้งอื่น

แอปตัวอย่าง InstallAPKSessionApi.java ยังแสดงวิธีจัดการ STATUS_PENDING_USER_ACTION

สร้างความเป็นเจ้าของแอปที่โหลดไว้ล่วงหน้า

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