oppo通知栏的那些事儿(如何分析系统级应用)
前言:
oppo系统的默认禁止了第三方应用向通知栏发送通知,它的设置里面有个通知栏的开关,默认是关闭的,导致了我们发送的通知都展示不出来。只有手动打开了才可以展示。既然可以打开那么我们可是否可以直接用代码去打开这个开关从而让我们的应用可以弹出通知栏呢?既然有了目标就开干。
分析:
分析这一类的问题,就是通过系统的log定位稳定,插上oppo的手机,在通知管理的界面里面,随便点击一个条目,过滤tag为ActivityManager,看系统调用的log。
可以很清晰的看到调用了哪个包,哪个Activity.这里我们直接定位到这一行log。
START u0 {act=com.coloros.notificationmanager.app.detail cmp=com.coloros.notificationmanager/.AppDetailPreferenceActivity (has extras)} from uid 1000 from pid 2086 on display 0
既然知道了是这个com.coloros.notificationmanager包就可以导出这个包对应的APK反编译查看到底调用了哪行代码了。
动手:
如果想知道这个包名对应的app叫什么,手机上安装一个包名查看器,看下这个包名对应是什么东西。
看到了吧有个通知栏管理的系统应用,那么我们就开始动手搞吧,看它是怎么搞的。adb进入到/system/app目录下ls一下。
看起来有点像它,那么就abd pull导出来看一波吧。
F:>adb pull /system/app/notification_center D:/notification_center
/system/app/notification_center/: 4 files pulled…files skipped. 6.2 MB/s (603955 bytes in 0.093s)
导出来是一个文件夹,是个这个东西。