Activer le bouton d'activation des pages de 16 ko

Le bouton d'activation/de désactivation de 16 ko vous permet de tester un kernel 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

  1. 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 kernel 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
    
  2. Configurer la variable produit pour afficher l'option pour les développeurs dans les paramètres PRODUCT_16K_DEVELOPER_OPTION := true

  3. Définissez le chemin d'accès au noyau à l'aide de BOARD_KERNEL_PATH_16K. Ce noyau doit être créé avec CONFIG_ARM64_16K_PAGES=y..

      BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
    
  4. Définissez le chemin d'accès à la configuration des modules BOARD_KERNEL_MODULES_16K. Cela pointe vers les modules de kernel compatibles avec les pages de 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) et boot_ota_4k.zip(pour passer au kernel de 4 Ko). Activez les OTA incrémentielles en définissant BOARD_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)
    
  5. 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

  1. Le bouton d'activation/de désactivation de la taille de page de 16 ko est visible dans l'application Paramètres avec "Démarrer avec une page de 16 ko".
  2. /system/boot_otas ou /vendor/boot_otas contient deux fichiers ZIP OTA : boot_ota_16k.zip et boot_ota_4k.zip.

Utiliser le bouton d'activation/de désactivation des pages de 16 ko

  1. Activez les options pour les développeurs en suivant les instructions de la documentation sur les options pour les développeurs.
  2. 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 par l'OEM.
  3. 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.
  4. 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 ko et 16 ko sans effacer la partition de données pour tester le comportement de l'application.

Vérifier le mode 16 ko

Pour vérifier la taille de la page, suivez la procédure décrite dans Obtenir la taille de la page.