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

Il pulsante di attivazione/disattivazione a 16 KB ti consente di provare un kernel a 16 KB. Questo pulsante attiva/disattiva un kernel a 4 kB e uno a 16 kB e si trova all'interno del menu "Opzioni sviluppatore" nell'app Impostazioni. Il pulsante di attivazione/disattivazione a 16 kB può essere utilizzato 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 di attivazione/disattivazione

  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). Ti consigliamo di installare il kernel a 16 kB direttamente 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 del dispositivo virtuale.

        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 sulla 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 aggiornamenti OTA incrementali impostando BOARD_16K_OTA_USE_INCREMENTAL := true per gli aggiornamenti 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 le OTA nella partizione del fornitore. Imposta questa opzione solo per spostare gli aggiornamenti OTA dalla partizione di sistema alla partizione del fornitore.

Verifica

Dopo aver configurato correttamente il pulsante di attivazione/disattivazione, segui questi passaggi:

  1. Controlla se l'opzione 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.

Utilizzare l'opzione di attivazione/disattivazione 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 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. Per istruzioni, vedi Bloccare e sbloccare il bootloader.
  4. Fai clic su Avvia con dimensione pagina 16 kB. Se /data e /metadata non sono ext4, viene visualizzata una finestra di dialogo che ti chiede di cancellare i dati del dispositivo. Fai clic su Cancella tutti i dati e aggiorna per resettare il dispositivo e applicare gli aggiornamenti OTA di avvio. Il dispositivo viene inizializzato e si avvia in modalità a 16 kB. Attiva di nuovo le opzioni per gli sviluppatori. Puoi quindi passare dalla modalità a 4 kB a quella a 16 kB senza cancellare la partizione dei dati per testare il comportamento dell'app.

Controlla la modalità a 16 kB

Segui i passaggi descritti in Come ottenere le dimensioni della pagina per verificare le dimensioni della pagina.