Почему подозрительная программа разряжает мою батарею при использовании GPS? [дубликат]

  • Телефон: нексус 5, версия 2013.
  • Версия андроида: 6.0
  • Версия ядра: 3.4.0-g2aa165e
  • Номер сборки: MRA58N

Последние несколько дней 10118 разряжал аккумулятор моего телефона. Он разряжает батарею, используя GPS. Я набрал ps в эмуляторе терминала, а приложения с PID 10118 не было. Что такое 10118, я не знаю. Я предполагаю, что это одно из недавно установленных погодных приложений.

Как я могу это исправить?

Скриншот Скриншот
Скриншоты (нажмите на изображение, чтобы увеличить его)

Мне кажется, это UID. Посмотрите, сможете ли вы найти связанное имя пакета, используя его как UID. Это может помочь: Как узнать имя приложения по UID. Кроме того, используйте службу вставки (например, pastebin), чтобы получить вывод adb shell dumpsys batterystats. Вам потребуется настроить adb на ПК и включить отладку по USB на устройстве.
Подтверждено @Firelord: это UID. В качестве альтернативы установке ADB в соответствии с рекомендациями Firelord вы также можете попробовать dumpsys batterystatsустановить ее из терминального приложения.
@Izzy, я тоже думал об этой рекомендации, но минимальная привилегия, необходимая для доступа к системной службе, — это ADB, а последняя — root. Вот что мне сказала моя попытка в эмуляторе терминала.
@Firelord Я думал об этом. Но пока есть разрешение на сбор BATTERY_STATS , я не нашел ни одного, чтобы получить к ним доступ . Я тоже не пробовал. Так у вас и не заработало ("отказано в доступе" или какая-то другая ошибка)?
Интересная информация. Я думаю, ты прав насчет этого. Правильное сообщение об отказе, которое я получаю, заключается в том, что пользователь (пользователь в терминальном приложении) не имеет разрешения android.permissions.DUMP. Поэтому я предполагаю, что для успешного выполнения команды потребуются два разрешения: разрешение на создание дампа и разрешение на сбор статистики батареи или, по крайней мере, первое разрешение для доступа к инструменту dumpsys.
Ой. Вы абсолютно правы, @Firelord: для этого требуется разрешение DUMP, уровень защиты «разработка» и (цитата) «Не для использования сторонними приложениями». Таким образом, терминальное приложение, желающее получить доступ dumpsys, должно быть по крайней мере предварительно установлено. И да, здесь я был слеп: «Информация, доступная с этим разрешением, скорее всего, сравнима с информацией, полученной с помощью инструмента командной строки dumpsys ». (процитировал мое собственное описание разрешения здесь;)
Интригующий факт заключается в том, что вы можете без проблем запускать dumpsys в одиночку. Вы не получите сообщение об ошибке об этом конкретном разрешении дампа. Все, что произойдет, это то, что вы увидите ошибку отказа в разрешении для каждой доступной службы. Я использовал com.android.terminalприложение для доступа к сервису batterystats и получил ошибку разрешения, как и для эмулятора терминала. @Иззи
@Firelord Вывод «adb shell dumpsys batterystats» находится на gist.github.com/crocket/1ac5999ef4679cbf542e . Суть будет удалена через несколько недель.
пакет adb shell dumpsys | grep -A1 "userId=10118"' ничего не возвращает.
Интересный выход. Там явно есть приложение или, по крайней мере, идентификатор пользователя 10118. Посмотрите его в результатах поиска u0a118. Скажите, у вас есть root-доступ? Когда вы скажете мне это, пожалуйста, предоставьте вывод adb shell dumpsys procstatsи adb shell dumpsys location.
@Firelord adb shell dumpsys procstats: dpaste.com/2DVBP98 adb shell dumpsys location: dpaste.com/2GJ500A
Хм, я ожидал, что procstats покажет что-то полезное. Думаю, мне придется пойти с тем, что показывает служба определения местоположения. Я знаю, что разъяснение, которое я искал, ни к чему вас не привело, но, если возможно, не могли бы вы предоставить отдельный вывод для adb shell dumpsys package kr.co.kweather, adb shell dumpsys package com.google.android.dialer, adb shell dumpsys package com.aws.android, adb shell dumpsys package com.wisemobile.openweather?
Только номеронабиратель имел выход. номеронабиратель: dpaste.com/1C2R76P Я думаю, что kweather и openweather были удалены в прошлом.

Ответы (1)

Это UID удаленного приложения.

Для такого числа, как 10118, это UID Unix для пользовательского приложения ( u0_a118).

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

Android регистрируется не по приложению (для пользовательских приложений), а по его UID. Поэтому, когда вы просматриваете использование батареи, Android сообщает вам список по идентификаторам процессов, который содержит один, с которым не связано приложение. Android не может определить, для какого приложения предназначен этот UID, поэтому он решает предоставить вам UID напрямую, и это число, которое вы видите.

Если это удаленное приложение, перезагрузка устройства должна остановить процесс.