Вопрос по android – Как показать активность ДО того, как мое приложение будет удалено (Android) [дубликат]

21

This ques#ion already has an answer here:

Is i# possible #o de#ec# Android app unins#all? 7 answers Perform a #ask on unins#all in android [duplica#e] 4 answers

Хотя это было невозможно, но я заметил, что NQ Mobile Securi#y может отображать сообщение после того, как я нажму «Удалить» и перед вызовом PackageUnins#aller. Я хотел бы повторить это поведение в моем приложении.

Я пытался с помощью Ac#ivi#y прослушивать "android.in#en#.ac#ion.DELETE" quo#; Намерение, как предлагается здесь: Как узнать, что мое приложение удалено с устройства ...?

Но когда я собираюсь удалить свое приложение, появляется окно выбора с просьбой выбрать мое приложение или программу удаления пакета. Как я могу избежать этого?

Есть ли другой способ перехватить событие UNINSTALL вашего приложения? (прежде чем ответить, что это невозможно, попробуйте удалить NQ Mobile Securi#y и посмотреть, что произойдет. На моем Android 2.3.4 отображается хороший экран с надписью, что без приложения безопасности не безопасно).

Похоже, я не могу принять изменения. Владелец / оригинальный постер может сделать это ... scorpiodawg
@scorpiodawg Нет, не рутирован. Это немодифицированное розничное устройство. Я отредактировал вопрос и добавил изображения, как он удаляется, можете ли вы принять изменения? Gaurav Agarwal
Является ли ваше устройство рутованным или это обычное / неизмененное розничное устройство? scorpiodawg
You can see the uninstall image i.imgur.com/jJYRq.png, i.imgur.com/dTOT5.png а такжеi.imgur.com/vPL2W.png Gaurav Agarwal
Кстати, что это за сообщение, которое появляется, когда вы нажимаете «удалить» для «NQ Mobile Security»? Имеет ли это какое-либо отношение к «политике устройства»? или "администратор устройства"? scorpiodawg

Ваш Ответ

5   ответов
3

что они контролируют LogCat для перехвата, когда Activity Manager вызывает PackageUninstaller. Я думаю, что они убивают задачу и начинают свою собственную деятельность. Это довольно умно, но оно определенно использует дыру в безопасности в Android.

Error: User Rate Limit Exceededcode.google.com/p/android/issues/…
6

которое делает нечто подобное - после удаления открывает веб-страницу.

Как они это делают?

Используя libevent из собственного кода, они просматривают каталог /data/data/com.opera.max, который необходимо удалить, и затем публикуют старые добрые сообщения action.VIEW, когда это происходит.

Установите их приложение, запустите его и на рутированном устройстве из оболочки adb удалите каталог /data/data/com.opera.max

ОБНОВЛЕНИЕ: я создал пример приложения, которое показывает, как оно работает. Кстати, он не работает с последними (я думаю, KitKat +) версиями Android:https://github.com/pelotasplus/ActionAfterUninstall

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

https://stackoverflow.com/a/26829978/1317564Вот пример кода, который делает это:https://github.com/zzljob/android-uninstall-feedback/blob/master/library/jni/feedback-uninstall.c, Это на самом деле не остановит деинсталляцию, но предоставляет способ отловить ее и предпринять некоторые действия. Я искренне удивлен, что это работает в Android, и команда, возможно, восполнила пробел в последних выпусках.

29

ick on Uninstall and before the PackageUninstaller is called

Должно быть, они используют какой-то недостаток безопасности в Android. Я исследую это и посмотрю, смогу ли я это исправить. Приложения не должны получить контроль во время удаления.

Спасибо за указание на это!

Is there a different way to intercept your application UNINSTALL event?

Я надеюсь, что нет.

Error: User Rate Limit ExceededActivityError: User Rate Limit ExceededIntentServiceError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
3

они запрашивают очень критическое разрешение, которое пользователь дает им по незнанию. Посмотрите на & quot; Разрешения & quot; Вкладка для этого приложения (по состоянию на 15.06.2012):https://play.google.com/store/apps/details?id=com.nqmobile.antivirus20&hl=en.

Список разрешений, которые получает это приложение, совершенно пугающий. Среди прочего:

SYSTEM TOOLS RETRIEVE RUNNING APPS Allows the app to retrieve information about currently and recently running tasks. Malicious apps may discover private information about other apps.

CHANGE/INTERCEPT NETWORK SETTINGS AND TRAFFIC Allows the app to change network settings and to intercept and inspect all network traffic, for example to change the proxy and port of any APN. Malicious apps may monitor, redirect, or modify network packets without your knowledge.

PREVENT TABLET FROM SLEEPING PREVENT PHONE FROM SLEEPING Allows the app to prevent the tablet from going to sleep. Allows the app to prevent the phone from going to sleep.

CHANGE YOUR UI SETTINGS Allows the app to change the current configuration, such as the locale or overall font size. MODIFY GLOBAL SYSTEM SETTINGS Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.

DISPLAY SYSTEM-LEVEL ,ALERTS Allows the app to show system alert windows. Malicious apps may take over the entire screen.

MOUNT AND UNMOUNT FILESYSTEMS Allows the app to mount and unmount filesystems for removable storage.

CHANGE NETWORK CONNECTIVITY Allows the app to change the state of network connectivity.

CHANGE WI-FI STATE Allows the app to connect to and disconnect from Wi-Fi access points, and to make changes to configured Wi-Fi networks.

-- Обновить --

Я также обнаружил, что диспетчер пакетов Android в значительной степени просто удаляет пакет, если его об этом просят.only прежде чем сделать это, проверьте, зарегистрирован ли удаляемый пакет как имеющий активного администратора устройства:

    try {
        if (dpm != null && dpm.packageHasActiveAdmins(packageName)) {
            Slog.w(TAG, "Not removing package " + packageName + ": has active device admin");
            return PackageManager.DELETE_FAILED_DEVICE_POLICY_MANAGER;
        }
    } catch (RemoteException e) {
    }

См. Строку 6900 в PackageManagerService в источнике AOSP.Вот.

Для этого приложение должно быть явно зарегистрировано пользователем как администратор устройства. Смотрите примечания по администрированию устройства здесь:http://developer.android.com/training/enterprise/device-management-policy.html.

Error: User Rate Limit ExceededCan user give permission to run an Activity while application is uninstalled?
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededstackoverflow.com/questions/11062780/…
Error: User Rate Limit ExceededDevice AdministrationError: User Rate Limit Exceeded"android.permission.BIND_DEVICE_ADMINError: User Rate Limit Exceeded

Похожие вопросы