根据OP按照我的建议进行的故障排除,罪魁祸首似乎是一个名为System Locker 的恶意软件
,程序包名为com.tihomobi.lockframe.syslocker。对于设备的某些用户,此问题似乎是系统更新的结果。
与系统应用程序一样,如果要使用“ 设置”→“应用程序”→“系统应用程序/所有应用程序” →“元凶” 下的“ 禁用”选项,则一定要禁用该应用程序,强制停止该应用程序或重新启动Android。在恢复出厂设置之前,该问题应已解决。
故障排除#1
这是我找出罪魁祸首的方法。内置的Android工具dumpsys尤其显示哪个应用程序被哪个其他应用程序调用。呼叫者称为呼叫包。
前提是您已在PC和Android设备上成功设置了adb和usb调试功能,请执行以下操作:
- 保持设备连接到PC
- 重新启动设备或强制停止该默认浏览器应用
- 让恶意软件发挥作用,即让浏览器自动启动
浏览器启动后,实际上不对设备执行任何操作,但在PC上运行以下adb命令:
adb shell dumpsys activity activities
这是OP设备的输出:
活动管理器活动(dumpsys活动活动)
显示#0(活动从上到下):
堆栈1:
任务ID#2
* TaskRecord {8190ba1#2 A = android.task.browser U = 0 sz = 1}
userId = 0 validUid = u0a64 mCallingUid = u0a26 mCallingPackage = com.tihomobi.lockframe.syslocker
finity = android.task.browser
intent = {act = android.intent.action.VIEW dat = http://im.apostback.com/click.php?c = 362&key = 9wl83884sg67y1acw3z56z90&s4 = 8%2FdNwcNuQFEjjaucho5IqA%3D%3D flg = 0x10000000 pkg = com.android。浏览器cmp = com.android.browser / .BrowserActivity}
realActivity = com.android.browser / .BrowserActivity
...
...
历史记录0:ActivityRecord {66cd59b u0 com.android.browser / .BrowserActivity t2}
packageName = com.android.browser processName = com.android.browser
launchedFromUid = 10026 launchedFromPackage = com.tihomobi.lockframe.syslocker用户id = 0
app = ProcessRecord {5ad1810 4337:com.android.browser / u0a64}
意图{act = android.intent.action.VIEW dat = http://im.apostback.com/click.php?c=362&key=9wl83884sg67y1acw3z56z90&s4=8%2FdNwcNuQFEjjaucho5IqA%3D%3D flg = 0x10000000 pkg = com.android.browser cmp = com.android.browser / .BrowserActivity}
在输出中:
- com.android.browser是设备中现有Android浏览器的软件包名称
- com.tihomobi.lockframe.syslocker是恶意软件应用程序的软件包名称,称为调用软件包。
如果找到了该恶意软件,请避免进行后续故障排除,并跳至标题Nuke the恶意软件。
故障排除#2
(作为对此处发布的副本的回应-罪魁祸首应用程序是Farming Simulator 18)
在某些情况下,上述故障排除可能无法解决问题,例如,调用程序包名称是dumpsys输出中显示的浏览器本身的程序包名称时。在这种情况下,最好使用logcat。像这样设置logcat:
亚行logcat -v long,描述性| grep“ dat = http”#您也可以grep URL中的任何内容。这完全取决于您。
adb logcat -v long,描述性> logcat.txt#替代; 如果您的操作系统中未安装grep。您需要立即搜索该文件。
现在解锁设备,并使用该URL自动启动浏览器。另外,如果要将输出保存到文件中,请按Ctrl与C。
我们正在寻找的输出将类似于:
[11-27 16:03:22.592 3499:6536 I / ActivityManager]
开始u0 {act = android.intent.action.VIEW dat = https://livemobilesearch.com / ... flg = 0x10000000 pkg = org.mozilla.firefox cmp = org.mozilla.firefox / .App}
来自uid 10021
...
[11-27 16:03:22.647 3499:15238 I / ActivityManager]
开始u0 {act = android.intent.action.VIEW dat = https://livemobilesearch.com / ... pkg = org.mozilla.firefox cmp = org.mozilla.firefox / org.mozilla.gecko.BrowserApp}
来自uid 10331
请参见突出显示的两个UID 10021和10331。其中之一(您的情况可能会有所不同)是针对启动的浏览器应用程序,其中之一是请求该URL的恶意软件应用程序。那么,如何找到什么呢?
如果您具有root用户访问权限,只需执行以下操作:
adb shell su -c'ls -l / data / data / | grep u0_a 21 '
adb shell su -c'ls -l / data / data / | grep u0_a 331 '
输出如下:
drwx ------ 5 u0_a21 u0_a21 4096 2018-01-01 10:31 com.android.chrome
drwx ------ 5 u0_a331 u0_a331 4096 2018-01-01 10:31 com.tihomobi.lockframe.syslocker
如果您没有root用户访问权限,请执行以下操作:
adb shell dumpsys package > packages_dump.txt
现在搜索带有您的UID的行,例如“ userId = 10021”和“ userId = 10331”。搜索到的行上方的行将为您提供软件包名称,并且可能看起来像这样:
包[ com.android.chrome ](172ca1a):
userId = 10021
...
软件包[ com.tihomobi.lockframe.syslocker ](172ca1a):
userId = 10331
这两个软件包的名称分别是com.android.chrome(对于Chrome浏览器-肯定不是恶意软件)和com.tihomobi.lockframe.syslocker。要从程序包名称中了解应用程序的名称,请在此处使用我的答案。
破坏恶意软件
现在您知道了罪魁祸首,您可以如上所述通过GUI禁用它。如果不可能,请执行以下操作:
adb shell pm disable-user PKG_NAME#禁用应用程序
adb shell pm uninstall --user 0 PKG_NAME#删除主要用户的应用程序
adb shell am force-stop PKG_NAME#仅强制停止应用程序
将PKG_NAME替换为您在上述疑难解答中记录的恶意软件的程序包名称。
这应该够了吧。此外,您还可以考虑永久删除所有用户的恶意软件应用程序,但这需要root用户访问权限。