Activer le bouton d'activation des pages de 16 ko

Le bouton d'activation/de désactivation 16 Ko vous permet d'essayer un noyau de 16 Ko. Ce bouton bascule entre un noyau de 4 Ko et un noyau de 16 Ko, et se trouvent dans le "Options pour les développeurs" dans l'application Paramètres. Le bouton d'activation/de désactivation de 16 Ko peut être utilisé pour vérifier la compatibilité de l'application avec le noyau de 16 Ko, reflètent les performances réelles de l'appareil de 16 Ko 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 le noyau 16K directement pour vous assurer que le périphérique fonctionne 16 Ko directement avant de continuer à ajouter l'option pour les développeurs. Consultez l'exemple d'appareil virtuel configuration cible.

        PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
        PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
    
  2. Configurez une variable de 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éfinit le chemin d'accès de configuration des modules BOARD_KERNEL_MODULES_16K. Il pointe vers le noyau compatibles avec une taille de 16 Ko. Définir ces paramètres créera deux OTA sur le partition système - boot_ota_16k.zip(pour passer à un noyau de 16 Ko) et boot_ota_4k.zip(pour passer à un 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émarrage avec une taille de page de 16 Ko" est visible dans l'application Paramètres.
  2. /system/boot_otas ou /vendor/boot_otas contient deux fichiers ZIP OTA : boot_ota_16k.zip et boot_ota_4k.zip.

Activer/Désactiver 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 clique sur "Démarrer avec une taille de page de 16 Ko", /data et /metadata les partitions doivent être de type 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 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.