Le bouton d'activation/de désactivation 16 Ko vous permet d'essayer un noyau de 16 Ko. Ce bouton bascule permet de passer d'un kernel de 4 Ko à un kernel de 16 Ko. Il se trouve dans le menu "Option pour les développeurs" de l'application Paramètres. Le bouton bascule 16 Ko peut être utilisé pour vérifier la compatibilité de l'application avec le kernel 16 Ko, mais il ne reflète peut-être pas les performances de l'appareil 16 Ko réel en raison de l'utilisation de blocs de sous-pages (lorsque vous utilisez EXT4 pour les partitions /data
et /metadata
) en mode 16 Ko.
Procédure de configuration du bouton d'activation/de désactivation
Assurez-vous que l'appareil a configuré les variables de manière agnostique de page (pour fonctionner avec les kernels de taille de page 4 ko et 16 ko). Vous pouvez installer directement le noyau 16 Ko pour vous assurer que l'appareil fonctionne en mode 16 Ko avant de continuer à ajouter l'option pour les développeurs. Consultez l'exemple de configuration cible de l'appareil virtuel.
PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
Configurer la variable produit pour afficher l'option pour les développeurs dans les paramètres
PRODUCT_16K_DEVELOPER_OPTION := true
Définissez le chemin d'accès au noyau à l'aide de
BOARD_KERNEL_PATH_16K
. Ce noyau doit être créé avecCONFIG_ARM64_16K_PAGES=y.
.BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
Définir le chemin d'accès à la configuration des modules
BOARD_KERNEL_MODULES_16K
. Cela pointe vers les modules de kernel compatibles avec 16 ko. Le paramétrage de ces paramètres crée deux OTA sur la partition système :boot_ota_16k.zip
(pour passer au kernel de 16 Ko) etboot_ota_4k.zip
(pour passer au kernel de 4 Ko). Activez les OTA incrémentielles en définissantBOARD_16K_OTA_USE_INCREMENTAL := true
pour les OTA de démarrage de plus petite taille.BOARD_KERNEL_MODULES_16K += $(wildcard kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/*.ko) BOARD_KERNEL_MODULES_16K += $(wildcard kernel/prebuilts/common-modules/virtual-device/mainline/$(TARGET_KERNEL_ARCH)/16k/*.ko)
Définissez
BOARD_16K_OTA_MOVE_VENDOR := true
pour déplacer les OTA vers la partition du fournisseur. Facultatif. La plupart des appareils ne doivent pas définir cette valeur.
Validation
Une fois la configuration terminée
- Le bouton "Démarrage avec une taille de page de 16 Ko" est visible dans l'application Paramètres.
/system/boot_otas
ou/vendor/boot_otas
contient deux fichiers ZIP OTA :boot_ota_16k.zip
etboot_ota_4k.zip
.
Utiliser le bouton d'activation/de désactivation de la mémoire de 16 Ko
- Activez les options pour les développeurs en suivant les instructions de la documentation sur les options pour les développeurs.
- Si l'appareil est détecté comme verrouillé par l'OEM, une boîte de dialogue s'affiche pour demander à l'utilisateur de déverrouiller le téléphone par l'OEM. Suivez la procédure de déverrouillage OEM.
- Lorsque l'utilisateur appuie sur "Démarrer avec une page de 16 Ko", les partitions
/data
et/metadata
doivent être ext4. Si ce n'est pas le cas, une boîte de dialogue s'affiche pour demander à l'utilisateur d'effacer l'appareil. Si vous répondez "Oui", l'appareil sera effacé et vous devrez réactiver les options pour les développeurs. - Le bouton d'activation de 16 ko affiche désormais une boîte de dialogue de confirmation pour passer à 16 ko. Une fois la confirmation effectuée, les mises à jour OTA de démarrage sont appliquées. Vous pouvez ensuite basculer entre les modes 4 kB et 16 kB sans effacer la partition de données pour tester le comportement de l'application.
Vérifier le mode 16 kB
Pour vérifier la taille de la page, suivez la procédure décrite dans Obtenir la taille de la page.