2013-07-19 4 views
1

Я пытаюсь обновить Apk на Android удаленно. Чтобы запустить обновление без вмешательства пользователя, я использую этот пост Link.pm Команда дает ошибку сегментации

Но процесс возвращается с кодом выхода 139, который означает ошибку сегментации. Мой планшет укоренен, и я подтвердил это.

File file = new File(Constants.UPDATE_APK_PATH); 
    try { 
     String[] filenames = file.list(); 
     File apk = new File(file, filenames[0]); 
     Process pid = Runtime.getRuntime().exec(
       new String[] { "su", "-c", 
         "pm install -r "+apk.getAbsolutePath()}); 
     pid.waitFor(); 

Может ли кто-нибудь сказать, что именно я делаю неправильно? Файл присутствует в местоположении, и подпись обоих apk такая же.

ответ

1

Я уверен, что если вы используете adb install вместо pm install, эта проблема будет решена. Но я верю, что в этом случае у приложения недостаточно прав для установки пакетов.

+0

Как можно выполнить adb из активности? Я уже добавил эти разрешения «android.permission.FACTORY_TEST», «android.permission.INSTALL_PACKAGES», «android.permission.DELETE_PACKAGES». Можете ли вы сказать, что я пропустил? – jeevs

+0

вам не нужны эти разрешения для выполнения команд оболочки. В приведенном выше коде замените pm с помощью adb – blganesh101

+0

Adb также не работает. Теперь код выхода для процесса - 1. – jeevs

Смежные вопросы