Attivare l'opzione per attivare/disattivare le pagine di memoria di 16 kB

L'opzione a 16 kB ti consente di provare un kernel a 16 kB. Questa opzione passa da un kernel a 4 kB a un kernel a 16 kB e si trova nel menu "Opzioni sviluppatore" dell'app Impostazioni. L'opzione a 16 kB può essere utilizzata per verificare la compatibilità delle applicazioni con il kernel a 16 kB, ma potrebbe non riflettere le prestazioni del dispositivo a 16 kB effettivo a causa dell'utilizzo di blocchi di sottopagine (quando si utilizza EXT4 per le partizioni /data e /metadata) in modalità a 16 kB.

Passaggi per configurare l'opzione

  1. Assicurati che il dispositivo abbia configurato le variabili in modo che siano indipendenti dalla pagina (per funzionare con kernel di dimensioni pagina di 4 kB e 16 kB). Prima di continuare ad aggiungere l'opzione sviluppatore, ti consigliamo di installare direttamente il kernel a 16 kB per assicurarti che il dispositivo funzioni direttamente in modalità a 16 kB. Consulta la configurazione di destinazione di esempio del dispositivo virtuale target config.

        PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
        PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
    
  2. Configura la variabile del prodotto per visualizzare l'opzione sviluppatore nelle impostazioni PRODUCT_16K_DEVELOPER_OPTION := true

  3. Imposta il percorso del kernel utilizzando BOARD_KERNEL_PATH_16K. Questo kernel deve essere creato con CONFIG_ARM64_16K_PAGES=y.

      BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
    
  4. Imposta la variabile del percorso di configurazione dei moduli BOARD_KERNEL_MODULES_16K. Questa variabile rimanda ai moduli del kernel che supportano 16 kB. L'impostazione di questi parametri crea due OTA nella partizione di sistema : boot_ota_16k.zip(per passare al kernel a 16 kB) e boot_ota_4k.zip(per passare al kernel a 4 kB). Attiva gli OTA incrementali impostando BOARD_16K_OTA_USE_INCREMENTAL := true per gli OTA di avvio di dimensioni inferiori.

      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. Imposta BOARD_16K_OTA_MOVE_VENDOR := true per spostare gli OTA nella partizione del fornitore. Imposta questa opzione solo per spostare gli OTA dalla partizione di sistema a quella del fornitore.

Verifica

Dopo aver configurato correttamente l'opzione, segui questi passaggi:

  1. Verifica se l'opzione Avvia con dimensione pagina 16 kB è visibile nell'app Impostazioni.
  2. Verifica se /system/boot_otas o /vendor/boot_otas contiene due file zip OTA : boot_ota_16k.zip e boot_ota_4k.zip.

Utilizzare l'opzione a 16 kB

  1. Vai a Impostazioni > Sistema > Aggiornamenti software e applica gli aggiornamenti disponibili.
  2. Attiva le opzioni sviluppatore. Per istruzioni, vedi Configurare le opzioni sviluppatore sul dispositivo.
  3. Se il dispositivo viene rilevato come bloccato OEM, viene visualizzata una finestra di dialogo che ti chiede di sbloccare OEM lo smartphone. Per istruzioni, vedi Bloccare e sbloccare il bootloader. Se l'hardware del dispositivo supporta completamente 16 kB, lo sblocco OEM potrebbe non essere necessario e puoi saltare questo passaggio.

  4. Fai clic su Avvia con dimensione pagina 16 kB. Se /data e /metadata non sono in formato ext4, viene visualizzata una finestra di dialogo che ti chiede di cancellare i dati sul dispositivo. Fai clic su Cancella tutti i dati e aggiorna per cancellare i dati sul dispositivo e applicare gli OTA di avvio. I dati sul dispositivo vengono cancellati e il dispositivo si avvia in modalità a 16 kB. Attiva di nuovo le opzioni sviluppatore. A questo punto, puoi passare dalla modalità a 4 kB a quella a 16 kB senza cancellare la partizione dei dati per testare il comportamento dell'app.

Verificare la modalità a 16 kB

Segui i passaggi indicati in Ottenere la dimensione pagina per verificare la dimensione pagina.