যখন একটি অ্যাপ একটি স্টোর বা ইনস্টলার দ্বারা ইনস্টল করা হয়, তখন স্টোর বা ইনস্টলারটিকে "রেকর্ডের ইনস্টলার" হিসাবে বিবেচনা করা হয় যার অর্থ অ্যাপটির শেষ ইনস্টলার৷ অ্যান্ড্রয়েড 14-এর আগে, অ্যান্ড্রয়েড অন্য স্টোর বা অ্যাপ ইনস্টলারকে রেকর্ডের ইনস্টলার হতে এবং ব্যবহারকারীকে অবহিত না করেই অ্যাপ আপডেট করার অনুমতি দেয়।
অ্যান্ড্রয়েড 14-এ, একটি অ্যাপের প্রাথমিক ইনস্টলার নিজেকে "আপডেট মালিক" ঘোষণা করতে পারে এবং অ্যাপটির নিজস্ব আপডেটগুলি ঘোষণা করতে পারে। অন্য ইনস্টলার অ্যাপটি আপডেট করার চেষ্টা করলে, ব্যবহারকারীকে নতুন আপডেটটি এগিয়ে যাওয়ার আগে অনুমোদন করার সুযোগ দেওয়া হয়।
মালিকানা আপডেট করতে প্যাকেজগুলি বেছে নিন
একটি স্টোর বা ইনস্টলার একটি অ্যাপ প্যাকেজের মালিক তা ঘোষণা করতে, প্রতিটি প্যাকেজের জন্য আপনার sysconfig
XML-এ update-ownership
ট্যাগটি অন্তর্ভুক্ত করুন:
<update-ownership package="com.example.application" installer="com.example.installer" />
এই উদাহরণে, com.example.application
হল অ্যাপ প্যাকেজের মালিকানা এবং com.example.installer
হল প্যাকেজের মালিক৷ যখন একটি প্যাকেজ মালিকানা আপডেট করার জন্য নির্বাচন করা হয়, তখন অন্যান্য সুবিধাপ্রাপ্ত স্টোর বা ইনস্টলারদের আপডেট মালিককে পরিচালনা করতে হবে এবং অ্যাপটি আপডেট করার জন্য ব্যবহারকারীর সম্মতি পেতে হবে ।
মালিকানা পরিবর্তন থেকে প্যাকেজ অপ্ট আউট
আপনি আপনার স্টোর বা ইনস্টলারকে APK-এ একটি অস্বীকৃত তালিকা প্রদান করে আপডেট মালিক পরিবর্তন থেকে প্যাকেজের একটি উপসেট বেছে নিতে পারেন। এই তালিকায় একটি প্যাকেজ অন্তর্ভুক্ত করে, কোনো দোকান বা ইনস্টলার প্যাকেজের মালিকানা আপডেট করার অনুরোধ করতে পারে না।
প্যাকেজগুলিকে অন্য দোকান বা ইনস্টলারের দ্বারা আপডেটযোগ্য হওয়া থেকে অপ্ট আউট করতে:
মূল স্টোর বা ইনস্টলারের
AndroidManifest.xml
ফাইলে নিম্নলিখিত সম্পত্তি অন্তর্ভুক্ত করুন:<application …> <property android:name="android.app.PROPERTY_LEGACY_UPDATE_OWNERSHIP_DENYLIST" android:resource="@xml/legacyOwnershipDenylist" /> </application>
এই উদাহরণটি
legacyOwnershipDenylist
নামে একটি XML অস্বীকারকারীর উল্লেখ করে।নিম্নোক্ত বিন্যাস সহ কাঁচা 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
পরিচালনা করতে হয়।
প্রিলোড করা অ্যাপের মালিকানা প্রতিষ্ঠা করুন
প্রিলোড করা অ্যাপগুলি সাধারণত কোনও নির্দিষ্ট ইনস্টলারের মালিকানাধীন হয় না। পরিবর্তে প্রিলোড করা অ্যাপগুলিকে মালিকানা আপডেট করতে অপ্ট প্যাকেজে দেখানো হিসাবে সিস্টেম কনফিগারেশন ব্যবহার করে একটি নতুন মালিক নিয়োগ করা হয়৷