הגדר וטפל בבעלות על עדכונים עבור אפליקציות, הגדר וטפל בבעלות על עדכונים עבור אפליקציות

כאשר אפליקציה מותקנת על ידי חנות או מתקין, החנות או המתקין נחשבים ל"מתקין הרשומה" כלומר המתקין האחרון של האפליקציה. לפני אנדרואיד 14, אנדרואיד אפשרה לחנות אחרת או למתקין אפליקציה להפוך למתקין הרשומה ולעדכן את האפליקציה מבלי להודיע ​​למשתמש.

באנדרואיד 14, המתקין הראשוני של אפליקציה יכול להכריז על עצמו כ"בעל עדכון" ועל עדכונים לאפליקציה. אם מתקין אחר מנסה לעדכן את האפליקציה, ניתנת למשתמש ההזדמנות לאשר את העדכון החדש לפני שהוא ממשיך.

הצטרף לחבילות כדי לעדכן בעלות

כדי להצהיר שחנות או מתקין הם הבעלים של חבילת אפליקציה, כלול את תג update-ownership ב-XML של sysconfig עבור כל חבילה באופן הבא:

<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>
    

    דוגמה זו מתייחסת ל-Denylist XML בשם legacyOwnershipDenylist .

  2. צור רשימת הכחשה כמשאב XML גולמי בפורמט הבא:

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

אם חנות או מתקין מבקשים בעלות על חבילה ב-Denylist, הבעלות לא תינתן והחבילה עדיין מותקנת אך לא תהיה בבעלות אף מתקין. יתרה מזאת, ללא קשר למתקין, אפליקציה ברשימת דנייל לא יכולה להיות בבעלות אף אחד.

ערכת החבילות ברשימה זו יכולה להשתנות באמצעות עדכון ל-APK של המתקין שמספק את הרשימה. כל בעלות שהוגדרה לחבילה שמוצגת לאחר מכן לרשימת דחיה נמחקת כאשר מתקין מתעדכן. לפיכך, עדכונים הבאים של חבילת האפליקציות ברשימת הדחיות לא ידרשו אינטראקציה של המשתמש.

טפל בבעל העדכון וקבל את הסכמת המשתמש

עם Android 14, גם אם לחנות או למתקין אפליקציה יש את ההרשאה android.permission.INSTALL_PACKAGES , הוא עדיין צריך לטפל במצב STATUS_PENDING_USER_ACTION אם הוא רוצה לעדכן אפליקציה שהעדכונים שלה נמצאים בבעלות חנות או מתקין אחר.

האפליקציה לדוגמה InstallAPKSessionApi.java מראה גם כיצד לטפל STATUS_PENDING_USER_ACTION .

קבע בעלות על אפליקציות שנטענו מראש

אפליקציות שנטענו מראש אינן בבעלותו של מתקין ספציפי. במקום זאת יישומים שנטענו מראש מוקצים בעלים חדש באמצעות תצורת המערכת כפי שמוצג ב- Opt in packages in to עדכון בעלות .