Il meccanismo per fare questo si basa sulla sostituzione della sceneggiatura di animazione della batteria, che viene eseguito mentre il dispositivo è spento ma collegato, visualizzando in genere un'icona della batteria di ricarica. Il nome dello script varia da dispositivo a dispositivo, ma generalmente si trova nella directory /system/bin
. I dispositivi Samsung generalmente chiamano lo script playlpm
e altri nomi per lo script che ho visto includono ipod
, lpm
e battery_charging
. Ciò non funzionerà necessariamente su tutti i dispositivi, perché questo è ben al di fuori del framework standard di Android: alcuni dispositivi potrebbero non avere uno script equivalente, oppure potrebbero implementarlo in un modo diverso.
Questo potrebbe essere caratterizzato come un "exploit" in quanto richiede la root e funziona a livello di Linux piuttosto che a livello di framework Android, ma attualmente non esiste un'alternativa per l'implementazione di questo comportamento.
Il meccanismo generale per apportare questa modifica è descritto qui: https://android.stackexchange.com/questions/20021/automatically-power-on-android-when-the-charger-is-connected. Ovviamente è una buona idea eseguire il backup del precedente script di animazione della batteria prima di eseguire questa operazione.
Il seguente script ha funzionato per me su più dispositivi (diversi dispositivi Samsung e Verizon Ellipsis 7). Fondamentalmente, controlla se il telefono è collegato all'alimentazione CA e ha una carica sufficiente. Se è così, si avvia. In caso contrario, attende N secondi e ci riprova. Come effetto collaterale, lo script di animazione della batteria originale non verrà eseguito e non vedrai mai la bella animazione di ricarica.
#!/system/bin/sh
# battery threshold before boot-up (in percent)
bthresh=10
# time to sleep between checks (in seconds)
sleeptime=600
# file that contains current battery level as integer between 0 and 100
cfi=/sys/class/power_supply/battery/capacity
# file that contains 1 if we're plugged in to AC, 0 if not
acfi=/sys/class/power_supply/battery/subsystem/ac/online
# if either file doesn't exist, just do normal sleep+boot
[ ! -f $cfi ] && sleep $sleeptime && /system/bin/reboot
[ ! -f $acfi ] && sleep $sleeptime && /system/bin/reboot
# populate capacity and AC variables
c=`cat $cfi`
ac=`cat $acfi`
# stop loop if we're not plugged into AC
until [ "$ac" -eq 0 ]
do
# if capacity above threshold, boot up
if [ "$c" -gt "$bthresh" ]; then
/system/bin/reboot
fi
# wait some time before next check
sleep $sleeptime
# update capacity and AC variables
c=`cat $cfi`
ac=`cat $acfi`
done
Non esiste alcun codice utente o sistema operativo in esecuzione in quel punto, quindi no, non è possibile. –
@SamiKuhmonen - come viene visualizzata l'animazione di ricarica, quindi? –
Problema interessante ... Ho una situazione simile che sto cercando di risolvere. Ne parliamo a XDA, ecco il link: http://forum.xda-developers.com/showthread.php?t=1187631&page=7 – portsample