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

Il pulsante di attivazione/disattivazione 16 KB ti consente di provare un kernel da 16 KB. Questo pulsante di attivazione/disattivazione consente di passare da un kernel a 4 kB a uno a 16 kB e si trova nel menu "Opzione sviluppatore" dell'app Impostazioni. Il pulsante di attivazione/disattivazione a 16 kB può essere utilizzato per verificare la compatibilità dell'applicazione 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 (se si utilizza EXT4 per le partizioni /data e /metadata) in modalità a 16 kB.

Passaggi per la configurazione dell'opzione di attivazione/disattivazione

  1. Assicurati che sul dispositivo le variabili siano impostate come indipendenti dalla pagina (per funzionare con kernel di dimensioni pagina di 4 e 16 kB). Ti consigliamo di installare direttamente il kernel a 16 kB per assicurarti che il dispositivo funzioni in modalità a 16 kB prima di continuare ad aggiungere l'opzione sviluppatore. Consulta l'esempio di configurazione del target per il dispositivo virtuale.

        PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
        PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
    
  2. Configura la variabile 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 compilato 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 indica i 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 ridotte.

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

Verifica

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

  1. Controlla se l'opzione di attivazione/disattivazione Avvia con dimensione pagina 16 KB è visibile nell'app Impostazioni.
  2. Controlla se /system/boot_otas o /vendor/boot_otas contiene due file ZIP OTA : boot_ota_16k.zip e boot_ota_4k.zip.

Usare l'opzione di attivazione/disattivazione di 16 KB

  1. Vai a Impostazioni > Sistema > Aggiornamenti software e applica gli aggiornamenti disponibili.
  2. Attiva le opzioni sviluppatore. Per le istruzioni, vedi Configurare le opzioni per sviluppatori sul dispositivo.
  3. Se il dispositivo viene rilevato come bloccato dall'OEM, viene visualizzata una finestra di dialogo che ti chiede di sbloccare lo smartphone dall'OEM. Per istruzioni, vedi Bloccare e sbloccare il bootloader.
  4. Fai clic su Avvia con dimensione pagina di 16 KB. Se /data e /metadata non sono text4, viene visualizzata una finestra di dialogo che ti chiede di resettare il dispositivo. Fai clic su Cancella tutti i dati per resettare il dispositivo. Il dispositivo viene resettato e devi attivare di nuovo le opzioni sviluppatore.
  5. Fai clic su Avvia con dimensione pagina di 16 KB. Viene visualizzata una finestra di dialogo che ti chiede di passare a 16 KB e, dopo la conferma, vengono applicate le OTA di avvio. Puoi quindi attivare e disattivare la modalità a 4 KB e a 16 KB senza cancellare la partizione dei dati per testare il comportamento dell'app.

Verifica la modalità a 16 KB

Segui i passaggi descritti nella sezione Ottenere le dimensioni della pagina per verificare le dimensioni della pagina.