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

L'opzione di attivazione/disattivazione di 16 kB consente di provare un kernel da 16 kB. Questo pulsante di attivazione/disattivazione consente di passare da un kernel a 4 KB a un kernel 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.

Procedura per la configurazione dell'opzione di attivazione/disattivazione

  1. Assicurati che il dispositivo abbia configurato le variabili in modo che siano indipendenti dalla pagina (per funzionare con kernel con dimensioni di pagina da 4 e 16 kB). Ti consigliamo di installare direttamente il kernel a 16 kB per assicurarti che il dispositivo funzioni in modalità 16 KB prima di continuare ad aggiungere l'opzione sviluppatore. Consulta l'esempio di target config 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 il percorso di configurazione dei moduli BOARD_KERNEL_MODULES_16K. Indica i moduli del kernel che supportano 16 KB. L'impostazione di questi parametri creerà 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 OTA incrementali di impostazione BOARD_16K_OTA_USE_INCREMENTAL := true per 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. Facoltativo. La maggior parte dei dispositivi non dovrebbe impostarlo.

Verifica

Dopo aver completato la configurazione

  1. L'opzione di attivazione/disattivazione 16 kB è visibile nell'app Impostazioni con "Avvia con dimensioni pagina di 16 kB".
  2. /system/boot_otas o /vendor/boot_otas contiene due file ZIP OTA: boot_ota_16k.zip e boot_ota_4k.zip.

Usare l'opzione Attiva/Disattiva 16 KB

  1. Attiva le Opzioni sviluppatore come indicato nella documentazione relativa alle opzioni per sviluppatori.
  2. Se il dispositivo viene rilevato come bloccato dal produttore, viene visualizzata una finestra di dialogo per richiedere il dall'utente all'OEM. Segui i passaggi per lo sblocco dell'OEM.
  3. Quando l'utente fa clic su "Avvia con dimensione pagina di 16 kB", /data e /metadata. le partizioni devono essere ext4. In caso contrario, viene visualizzata una finestra di dialogo per richiedere all'utente di cancellare i dati del dispositivo. Se rispondi "Sì", il dispositivo viene resettato e dovrai nuovamente attivare le opzioni sviluppatore.
  4. L'opzione di attivazione/disattivazione di 16 kB ora mostra una finestra di dialogo di conferma per passare alla dimensione 16 kB, e dopo la conferma, vengono applicate le OTA di avvio. Puoi quindi passare dalla modalità a 4 kB a quella a 16 kB e viceversa senza cancellare la partizione dei dati per testare il comportamento dell'app.

Controlla la modalità da 16 kB

Segui i passaggi per ottenere le dimensioni di pagina per verificare le dimensioni della pagina.