你对 Android 一无所知_开发者模式(一)

192Views次阅读
No Comments

开发者模式!多么让人热血沸腾的一个词!这就像是后备隐藏能源,全球热核战争,午夜三点轰鸣的服务器机房一样。朗读其中的选项,任何人都能获得驾驶EVA的既视感!😎 你对

每个geek的硬盘里,都应该有一部战争游戏

强制GPU渲染,4*MSAA,启用HW叠加层……本系列会逐一介绍开发者模式里有意思的功能。而作为使用频率最高的功能,本期的主角自然是……

USB调试模式—前言

USB调试几乎是开发者模式里最强大的功能,通过Google开放的ADB SDK的命令,你几乎可以对你的android做任何事。如果你想给你的爪机整上氢OS或smartOS,那打开USB调试基本就是你要做的第一件事。

当然烧录ROM只是USB调试实现的无数功能之一,ADB更有意思的玩法在于无root情况下获得对android的超级管理。为了演示ADB命令的作用,这里以我服役多年的Huawei P10为例。

1.sudo权限

由于Huawei手机的防爆机制极为严苛,用户几乎无法通过第三方app获取root权限,想要获得权限甚至需要向官方递交申请,这就为许多顽固第三方app赢得了空间。而ADB的出现一举解决了这个问题。

首先,第一步就是打开【USB调试】与【仅充电下启用USB调试】 你对 在PC上准备好ADB工具包,并打好爪机驱动

你对 连接设备,WIN+R+cmd启用终端,cd到adb sdk目录下 你对 用adb devices命令列出已连接设备,确认连接成功 你对 为了干掉顽固的第三方,我们首先需要知道第三方app的应用包名,以系统默认浏览器为例,在MIUI中我们可以轻易的在应用设置中找到包名:com.android.browser 你对 然而EMUI中我们甚至不能在设置里查看,这时一条通用的途径是用: adb shell pm list packages >installed_apps.txt命令导出应用包列表再查看 你对 看到adb目录下生成的txt就表明导出成功了,里面列举了所有系统进程及app包名,我们只需要找出自己的目标即可。 你对 此时,在终端中输入adb shell pm uninstall --user 0+要卸载的应用包名就可以绕过root权限卸载,以系统默认浏览器为例 输入:adb shell pm uninstall --user 0 com.android.browser 你对 大大的Success~ 进手机查看一下,浏览器原地消失了🙃

2.权限管理

adb sdk还内嵌了对app权限的管理命令。在多数Android魔改版中app权限设置都只是些表面功夫,比如永远关不掉的系统更新,权限在背地里永远处于allow状态。解决这种状态,只要用adb强制关闭即可。

先来看下华为应用市场的占有权限,在adb中执行: adb shell appops get com.huawei.appmarket 你对 可以看到appmarket所有相关权限状态与访问记录。 实际每种权限的状态有4种,分别为: [ Allow, Deny, Default, Ignore ] 在EMUI中,所有这些权限都不能主动修改,而在这里,通过命令adb shell appops set + 应用包名 + 权限状态我就可以为所欲为 比如臭名昭著的大学毒瘤app: 知到 adb shell appops get com.able.wisdomtree 你对 权限不多,但我对他恨之入骨 如果要禁用它地指纹读取,我只要: adb shell appops set com.able.wisdomtree USE_FINGERPRINT ignore 你对 再次查看,权限已变为ignore状态。Easy peasy lemon squeasy~😎 之所以不激进地使用deny,是因为有些app检测到权限deny后会终止运行,而给他们分配ignore权限可以做到混淆视听,让app不调用权限的情况下也能运行。

3.状态分析

此外,ADB命令可以用来做大量的数据分析,pull出系统的各种状态,这类命令多而琐碎,这里放出几个,大家感兴趣自行探索。

adb shell dumpsys前缀命令可以“倒出“系统的各种硬件状态,比如: adb shell dumpsys battery 你对 可以看到目前的充电方式,最大充电功率,电池温度等。

adb shell dumpsys window displays可以显示出屏幕的dpi,实际渲染分辨率,屏幕出厂信息等(过多,图中未截出) 你对 adb shell dumpsys package + 包名可以查看应用包名,USER_ID,文件资源代码路径,版本信息,权限信息,签名版本等。例如: adb shell dumpsys package com.ironhidegames.android.kingdomrush 这句可以找到近乎完整的应用信息,要素过多这里就不放了

adb shell top可以pull出系统实时资源占用表,可以看出各进程的优先级,峰值CPU占有率,内存占用总量等。 你对 表面上说,这个窗口类似win上的资源管理器,只有观赏价值,但并不说明这些数据没有用,最近也有越来越多的人尝试用adb做数据分析,比如B站up EPC新出炉的教程:https://www.bilibili.com/video/BV1FK4y1f7vm 其中就用adb导出了内存占用日志,通过ps -A>>/sdcard/memory.log就可以做到,对此不多赘述。

4.Monkey!以及尾声

Monkey算是adb里有意思的一个工具,通过向应用发送随机的点按来对app进行压力测试,运行: adb shell monkey -p com.ironhidegames.android.kingdomrush -v 100 之后小猴子会对kingdomrush发送100次的随机事件,在终端里可以看到随机数种子,以及成吨的信息,这个功能我觉得主要还是硬核开发者的玩具吧,你也可以把随即次数设成1w+试试hhh 你对 对于开发者模式,可玩的内容还有很多,接下来应该会试着写写4*MSAA以及一些图形学设置的简单对比吧,这里要感谢android开发团队,把用户文档写的如此透彻。

6