Автоматическая загрузка при подключении зарядного устройства к стене
Я разрабатываю приложение для Android, где требуется 3 вещи: -
- Чтобы приложение было запущено в определенное время, а затем телефон отключится ( "Работает хорошо" )
- Когда телефон получает зарядку от розетки, я хочу, чтобы телефон автоматически включался, не нажимая кнопку питания. (Не работает с настенной розеткой, но работает при подключении к USB-кабелю через ноутбук).
- После загрузки мое приложение должно начать работать автоматически (работая отлично)
Вы должны знать: -
Мой телефон Moto E (коренится) и хочет выполнить второй шаг. Пробовал некоторые коды, но это не работает на moto E.
Когда он подключен к USB, он дает 2 в качестве ответа и при подключении к зарядному устройству настенной розетки говорит 1
Любая помощь будет оценена
P.S: - Автозагрузка работает с USB-кабелем, подключенным к ноутбуку, но не с зарядным устройством Socket
Update-1: 1 - Найден fastboot oem off-mode-charge 0
, работающий с Nexus 7, но не на Moto e.
2- Автонастройка при подключении к маршрутизатору (порт USB-кабеля)
Ответы
Ответ 1
Наконец-то я получил решение, вы можете добиться этого, удалив файл system/bin/charge_only_mode
. Пожалуйста, сделайте это на свой страх и риск, и перед удалением выполните резервное копирование этого файла. Я получил желаемый результат, который был загружен, когда он подключен к зарядному устройству на стене и теперь работает нормально.
Все самое лучшее!
Ответ 2
Мото е4 и Пиксель 2 XL:
Загрузите ваше устройство в загрузчик (fastboot) и выполните следующую команду с компьютера, подключенного через USB с помощью Android Tools:
fastboot oem off-mode-charge 0
Ответ 3
Я также попытался заменить charge_only_mode на sh script, который перезагрузил телефон, но получил только красный круг с M (на Motorola Bionic). Изменив script на ниже, он начал работать... Теперь я получаю красный круг с M в течение нескольких секунд, затем пустой экран, другой красный круг с M, и он загружается вверх.
#!/system/bin/sh
su -c "/system/bin/reboot -n outofcharge"
Ответ 4
На моем устройстве Lenovo K7000-Plus необходимо изменить файл kpoc_charger
, расположенный в /system/bin
.
Файл Ipod не работает на моем телефоне, который использует Android 6.0 ROM, но kpoc_charger работает pefectly.
Привет
Хади
Ответ 5
Для телефона Lenovo A2010 после работы:
- Используйте приложение для управления файловым телефоном из PlayStore, например Total commander (на корневом телефоне), чтобы перейти в папку /system/bin/
- Скопируйте файл kpoc_charger и вставьте его туда как kpoc_charger.bak
-
Теперь отредактируйте исходный файл kpoc_charger с помощью total-commander, замените все строки следующим кодом:
#!/system/bin/sh
/system/bin/reboot
- Сохраните его, свойства goto и измените UID: 0 root, оболочка GID: 2000 и разрешение 755 (такие же, как свойства других файлов в папке /system/bin ).
- Теперь выключите телефон и подключите его к зарядному устройству.
- Bazinga!!!! значок батареи отображается в течение секунды, но телефон успешно загружается в os.
Ответ 6
Когда телефон заряжается от розетки, я хочу, чтобы телефон включался автоматически, не нажимая кнопку питания. (Не работает со стеной Socket, но работает при подключении к USB-кабелю через ноутбук).
Вы можете добиться этого только путем изменения файлов ОС телефона. В основном есть boot script/binary at /system/bin/chargemon
, который вы можете заменить с помощью script, который ничего не делает. Сделайте это на свой страх и риск, потому что это может привести к повреждению устройства навсегда. Кроме того, гарантия производителя станет недействительной.
Ответ 7
Я нашел другой способ для этого (спасибо DavidThompson256 http://forum.xda-developers.com/showthread.php?t=1187631)
Сначала убедитесь, что ваш телефон укоренен (что я нашел iRoot очень хорошо для этого), а затем установите RootExplorer.apk(или аналогичный) на свой телефон.
Попробуйте отредактировать "/system/bin/playlpm" и замените его содержимое на следующие команды: (не забудьте сначала сделать резервную копию).
#!/system/bin/sh
/system/bin/reboot
(Я знаю, что содержимое находится в двоичном формате, просто удалите их и напишите эти две строки и сохраните файл)
ПРИМЕЧАНИЕ. При изменении этого файла изменения не будут применяться к его разрешениям, но если вы делаете другой файл, помните, чтобы устанавливать разрешения точно так, как было.
Наконец, пожалуйста, сделайте это на свой страх и риск. Это сработало для меня. (Samsung Discovery S730M)
Ответ 8
Может кто-нибудь помочь! Я пытаюсь заставить автозагрузку работать на Samsung Tablet A (T550). У меня есть root. Пробовал редактировать файл lpm, как упоминали многие сайты. Пробовал переименовывать перезагрузку в charmon, в charger_monitor.
Любая помощь приветствуется. Финансовое вознаграждение даже. Становится отчаянным.
Ответ 9
Я смог заставить его работать, обновив файл init.rc
Я нашел триггер on charger
и добавил следующие строки под ним:
setprop ro.bootmode "normal"
setprop sys.powerctl "reboot"
Весь триггерный блок выглядит так
on charger
class_start charger
setprop ro.bootmode "normal"
setprop sys.powerctl "reboot"
Затем вам нужно перепаковать и прошить загрузочный образ, созданный после обновлений.
Подключите устройство через USB
Включите устройство и перейдите в режим загрузчика
adb reboot bootloader
Для прошивки загрузочного образа выполните следующую команду в режиме fastboot
fastboot flash boot new-boot.img
Примечание. Это исправление приведет к перезагрузке устройства при подключении к нему, даже если его выключить с помощью кнопки питания или программного отключения.
Источник: https://forum.xda-developers.com/showthread.php?p=77766638#post77766638
Вы можете увидеть коммит, который содержит эти изменения для моего проекта здесь:
https://github.com/darran-kelinske-fivestars/mkbootimg_tools/commit/c8633a2ec2e1924272fd16a8ed7fa7414bb65544#diff-d0007d763b44198f7c22e2c19609d5bbR606
Ответ 10
Я думаю, что должен быть датчик мощности, если вы можете добавить, что в этом коде я верю, что он будет работать
public class Main extends Activity {
private SensorManager mSensorManager;
private PowerManager mPowerManager;
private WindowManager mWindowManager;
private WakeLock mWakeLock;
private Button button;
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try{
// Get an instance of the SensorManager
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// Get an instance of the PowerManager
mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
// Get an instance of the WindowManager
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mWindowManager.getDefaultDisplay();
// Create a bright wake lock
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass()
.getName());
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.textView1);
button = (Button)findViewById(R.id.button1);
button.setOnClickListener(mButtonStopListener);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onCreate", e.getMessage());
}
} // END onCreate
View.OnClickListener mButtonStopListener = new OnClickListener() {
public void onClick(View v) {
try {
mWakeLock.release();
textView.setText("mWakeLock.release()");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onPause",e.getMessage());
}
}
};
@Override
protected void onResume() {
super.onResume();
/*
* when the activity is resumed, we acquire a wake-lock so that the
* screen stays on, since the user will likely not be fiddling with the
* screen or buttons.
*/
try {
mWakeLock.acquire();
textView.setText("mWakeLock.acquire()");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onResume", e.getMessage());
}
}
@Override
protected void onPause() {
super.onPause();
// and release our wake-lock
try {
mWakeLock.release();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onPause",e.getMessage());
}
}
}
Ответ 11
Итак, я пытался добиться этого с помощью третьего поколения Moto G. У него есть файл charge_only_mode в соответствии с ответом Rohit, но простое перемещение/переименование не привело к перезагрузке телефона. Вместо этого он просто сидел там с логотипом Motorola. Я получил тот же результат при замене charge_only_mode с помощью любого из приведенных здесь сценариев.
Я действительно получил его на работу. Я скопировал /system/bin/reboot в/system/bin/charge_only_mode, и это сделало трюк.