La nuova versione del Compatibility Definition Document, il documento rilasciato da Google e destinato agli OEM che decidono di implementare Android nei propri dispositivi da poco aggiornato anche con l’arrivo della nuova versione dello stesso Android, ha introdotto alcuni nuovi obblighi per i produttori per quanto riguarda la gestione delle notifiche e la disistallazione di pacchetti.

L’ultima versione del CDD, infatti, va a sottolineare come le azioni che portino all’oscuramento o alla rimozione di notifiche native di Android relative ad azioni, risposte, accesso alle impostazioni o accorpamento di notifiche siano proibite, e gli OEM devono implementare le funzioni in modo conforme alla implementazione di Google nella AOSP.

Alcuni degli obblighi indicati per il produttore prevedono l’accessibilità del pannello di controllo (i toggle per i quick settings) direttamente dalla tendina delle notifiche, la capacità di controllare le notifiche direttamente dalla tendina stessa e la possibilità di bloccare, mutare o resettare le notifiche relative ad un pacchetto sia dalla notifica che dalle impostazioni.

Handheld device implementations MUST support the behaviors of updating, removing, replying to, and bundling notifications as described in this section.

Also, handheld device implementations MUST provide:

  • The ability to control notifications directly in the notification shade.
  • The visual affordance to trigger the control panel in the notification shade.
  • The ability to BLOCK, MUTE and RESET notification preference from a package, both in the inline control panel as well as in the settings app.

L’altra novità riguarda invece la sezione 4 dello stesso documento, titolata “Application Packaging Compatibility”, e che definisce come il dispositivo deve andare a gestire l’istallazione di file APK; la disintallazione di pacchetti in modo silenzioso da parte di applicazioni di sistema (che richiede il permesso DELETE_PACKAGE) viene proibita, e viene invece imposta la richiesta di conferma all’utente. Solamente l’applicazione responsabile dell’installazione di un determinato pacchetto potrà andare a rimuoverlo, ad eccezione del caso in cui si stia utilizzando la funzione di storage manager di Android Nougat (o si stia verificando il pacchetto).

Device implementations MUST NOT allow apps other than the current “installer of record” for the package to silently uninstall the app without any prompt, as documented in the SDK for the DELETE_PACKAGE permission. The only exceptions are the system package verifier app handling PACKAGE_NEEDS_VERIFICATION intent and the storage manager app handling
ACTION_MANAGE_STORAGE intent.