Come bloccare i processi in background delle app su Android Nougat, senza privilegi di root

Edoardo Carlo Ceretti

Da sempre Android ha dalla sua un’arma a doppio taglio: la libertà concessa alle app. Questa libertà, che coincide con la possibilità di girare liberamente in background, da un lato equivale a potenzialità molto più ampie rispetto alle app che girano su sistemi operativi concorrenti, perché, potendosi attivare a piacimento in background, possono svolgere un numero molto maggiore di compiti; da un altro punto di vista però, se queste app non sono ottimizzate e sviluppate con buon senso da parte dei loro creatori, l’abuso di libertà si tramuta in un consumo eccessivo delle risorse del proprio dispositivo, ovvero prestazioni inficiate e autonomia compromessa.

Gli esperti di modding sanno che i privilegi di root possono venire in aiuto in queste situazioni, installando app come Greenify che, quando possono godere dei permessi di root, sono in grado di tamponare gli eccessi di alcune app. Inoltre, sappiamo anche che uno degli obiettivi di Google, con lo sviluppo di Android O, sia proprio quello di dare un giro di vite definitivo alla questione.

Tuttavia, come potete notare, si tratta di condizioni non facilmente verificabili: non tutti sanno o vogliono darsi al modding e ancora meno utenti vedranno arrivare l’aggiornamento ad Android O prima di molti mesi (sempre che prima o poi arrivi davvero, sul loro dispositivo). Se vi trovate in questa situazione, possedete uno smartphone con Android Nougat (almeno 7.0) e volete frenare lo sperpero di risorse di alcune vostre app, questa guida è qui per aiutarvi.

Guida: bloccare i processi in background senza root

Prima parte: preparazione

Vi illustreremo qui di seguito i passaggi preparatori – per procurarvi i file e predisporre il vostro dispositivo al procedimento – indispensabili per la buona riuscita dell’operazione.

  1. Nel caso il vostro dispositivo li richiedesse per interfacciarsi con il vostro PC, installate i driver del vostro smartphone. Se non sapeste dove reperirli, Google fornisce una lista di driver dei principali produttori di smartphone Android.
  2. Scaricate ed installate ADB, scegliendo la versione relativa al vostro sistema operativo (WindowsmacOS o Linux).
  3. Estraete l’archizio zip di ADB appena scaricato e ponetelo in una cartella di facile accesso (va bene anche il Desktop).
  4. Attivate le Opzioni Sviluppatore sul vostro smartphone. Per farlo, andate nelle Impostazioni, poi Informazioni sul dispositivo e tappate sette volte sulla voce Numero di build.
  5. Ora entrate nelle Opzioni Sviluppatore e spuntate Debug USB. Vi verrà chiesta una conferma e dovrete dare l’ok.
  6. Prima di collegare il vostro dispositivo al PC tramite cavo USB, ricordatevi di controllare che il protocollo MTP sia attivo.

Seconda parte: il collegamento fra smartphone e PC e il blocco dei processi in background

Se avete preparato il vostro smartphone e vi siete procurati tutto ciò che serve per iniziare il procedimento vero e proprio, potrete ora proseguire con la guida.

  1. Ora spostatevi sul PC. Raggiungete la cartella dove avete estratto lo zip di ADB. All’interno della cartella dovete ora aprire un prompt dei comandi. È possibile farlo cliccando con il tasto destro del mouse, tenendo premuto Shift sulla tastiera, e cliccando su Aprire il Prompt dei Comandi qui. In alternativa è possibile farlo anche cliccando su File, in alto a sinistra. Oppure aprendo un Prompt dei Comandi a parte e poi digitare il percorso della cartella che contiene i file di ADB.
  2. Una volta aperto il Prompt dei Comandi (lo smartphone dovrà essere ora collegato al PC e con lo schermo attivato), digitate adb devices. A questo punto sullo smartphone comparirà un pop-up che chiederà di dare il consenso al PC di accedere al Debug USB del vostro dispositivo. Date l’ok.
  3. Siamo quasi giunti al cuore del procedimento, ovvero indicare i nome dei pacchetti di quelle app di cui vorreste bloccare i processi in background. Tuttavia, i nomi dei pacchetti delle app spesso non coincidono esattamente con il nome commerciale dell’app in questione e potreste trovarvi in difficoltà nel reperire il nome esatto. In questi casi, è utile quindi affidarsi ad un’app, chiamata App Inspector, grazie alla quale potrete visualizzare tutte le app installate sul vostro smartphone e i relativi nomi dei pacchetti. Noi consigliamo caldamente di consultarla prima di procedere oltre, per essere certi di non fare errori.
  4. Tornando sul PC, se fin qui è andato tutto secondo i piani, dopo il comando adb devices il Prompt dei Comandi vi mostrerà il codice (qui oscurato) del vostro smartphone, alla sinistra della scritta device. A questo punto siete pronti a digitare un nuovo comando: adb shell.
  5. Dopo di esservi sincerati di aver individuato il nome corretto del pacchetto dell’app che volete bloccare in backgroud, digitate cmd appops set <nome del pacchetto> RUN_IN_BACKGROUND ignore e premete invio per procedere. Ripetete il procedimento per ogni app di cui volete bloccare i processi in background.
  6. Se pensate di aver inserito per errore il nome di un pacchetto che non si riferisce all’app di cui vorreste bloccare i processi in background, oppure semplicemente se voleste ripristinare i permessi dei processi in background di un’app di cui li avevate bloccati, potete reinserire lo stesso comando ma con allow al posto di ignore, così: cmd appops set <nome del pacchetto> RUN_IN_BACKGROUND allow

  7. Se foste interessati al procedimento e voleste eseguirlo anche su un dispositivo dotato di privilegi di root, sappiate che tutto il processo è identico, ma nel comando da inserire per il blocco dei processi in background dovrete sostituire su a cmd, così: su appops set <nome del pacchetto> RUN_IN_BACKGROUND ignore

Conclusioni e avvertenze

Il procedimento a cui vi abbiamo guidato non fa altro che incidere sui permessi concessi alle app, in particolare il permesso di girare liberamente in background. Tuttavia, tale permesso non è impostabile direttamente dal menu del vostro smartphone, bensì è necessario il comando ADB sopracitato.

Revocando tale permesso, le app non avranno più accesso alla possibilità di girare in background, nemmeno a display acceso, ma potranno funzionare soltanto quando lancerete direttamente l’app. Fate quindi attenzione alle app che intendete bloccare, perché l’operazione impedirà loro anche di inviarvi notifiche in tempo reale, azione che richiede tassativamente l’accesso ai processi in background.

Se siete assolutamente convinti di aver individuato app che vi servono soltanto quando le utilizzate direttamente, allora procedete tranquillamente con la guida, che ha comunque effetti reversibili in ogni momento, come già precisato.

Fonte: XDA Developers