Да, это возможно. Вам не нужно иметь рутированное устройство, просто используйте трансляцию.В манифесте:
<receiver android:name="com.example.broadcastreceiver.YourClass">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN" />
</intent-filter>
</receiver>
Ваш класс:
public class YourClass extends BroadcastReceiver {
@Override
public void onReceive(Context c, Intent i) {
if(i.getAction().equals("android.intent.action.ACTION_SHUTDOWN")){
//Fire your code here
}
}};
}
Если это кажется невозможным, найдите другой способ сделать то же самое;)