1. 目的

基于《软件绿色联盟应用体验标准》中 Sensor 资源的定义,对 Sensor 后台持续使用的测试apk。旨在触发手机中异常功耗管控机制。

可以明确,不会触发Sensor的异常通知提醒,但是有日志输出

2022-06-21 15:55:02.841 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330389ms, pkg:com.sufadi.blocksensor
2022-06-21 15:55:02.860 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330408ms, pkg:com.huawei.health
2022-06-21 15:55:02.863 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330406ms, pkg:com.ss.android.article.news
2022-06-21 15:55:02.874 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330417ms, pkg:com.cootek.crazyreader
2022-06-21 15:55:02.888 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330428ms, pkg:com.huawei.hwireaderprivate void analyseSensorAct(AppPowerRecord appPowerRecord, long duration) {long sensorTime = appPowerRecord.getSensorTime();int powerLevel = AppPowerLevelConfig.getPowerLevel(3);if (mIAbnormalPolicy.isAbnormalOptimOkay(appPowerRecord.mAppName, appPowerRecord.mUid, -1, "sensor", duration, (int) sensorTime) >= 1) {Log.i("APwActAnalysis", "PAS sensor optim: " + appPowerRecord.mAppName);} else if (!isImportantOsApp(appPowerRecord.mAppName, appPowerRecord.mUid, true)) {if ((powerLevel == 2 || powerLevel == 3) && DEBUG_USB) {Log.d("APwActAnalysis", "not process sensor " + sensorTime + "ms, pkg:" + appPowerRecord.mAppName);}}}

2. 测试步骤

H手机和T手机、其他手机进行安装该apk.
所有手机都需要设置应用为白名单。

2.1 手机白名单设置方法:

手机管家->应用启动设置:允许自启动、允许关联启动、允许后台启动

2.2 测试环境

除了白名单,其他无

2.3 运行本apk

灭屏后台的使用行为检测,直接打开应用运行,home键,退到后台,拔掉USB线,灭屏10分钟后,导出日志

3. apk 源码

本apk作用:后台无限制使用Sensor

3.1 UI

3.2 核心逻辑

3.2.1 MainActivity

package com.sufadi.blocksensorimport android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundleclass MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)startService(Intent(this, BlockSensorService::class.java))}
}

3.3.2 权限配置

    <!-- 前台服务属性权限 --><uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>

3.3.3 核心逻辑

任意注册一个Sensor,并后台常驻运行

package com.sufadi.blocksensorimport android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.Service
import android.content.Context
import android.content.Intent
import android.hardware.Sensor
import android.hardware.SensorManager
import android.location.Location
import android.location.LocationListener
import android.location.LocationManager
import android.os.Bundle
import android.os.IBinder
import android.util.Log
import android.R.attr.y
import android.R.attr.x
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import androidx.core.content.ContextCompat.getSystemService
import android.icu.lang.UCharacter.GraphemeClusterBreak.Tclass BlockSensorService: Service() {var sensorMgr: SensorManager? = nullvar sensor: Sensor? =nullcompanion object {val TAG = "BlockSensorService"val FORGROUND_ID = 0x11}override fun onBind(p0: Intent?): IBinder? {return null}override fun onCreate() {super.onCreate()Log.d(TAG, "onCreate")startMyForeground()sensorMgr = getSystemService(SENSOR_SERVICE) as SensorManagersensor = sensorMgr?.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)Log.d(TAG, "registerSensorListener :" + this.baseContext.packageName)sensorMgr?.registerListener(InnerSensorEventListener(), sensor, SensorManager.SENSOR_DELAY_NORMAL)}inner class InnerSensorEventListener : SensorEventListener {overridefun onSensorChanged(e: SensorEvent) {val x = e.values[SensorManager.DATA_X]val y = e.values[SensorManager.DATA_Y]val z = e.values[SensorManager.DATA_Z]Log.d(TAG, "x=" + x + "," + "y=" + y + "," + "z=" + z)}overridefun onAccuracyChanged(s: Sensor, accuracy: Int) {}}override fun onDestroy() {super.onDestroy()stopForeground(true)}private fun startMyForeground() {Log.d(TAG, "startMyForeground show notification")Log.d(TAG, "PhoneDataService startMyForeground sdk :" + android.os.Build.VERSION.SDK_INT)val nb = Notification.Builder(this)if (android.os.Build.VERSION.SDK_INT >= 26) {val CHANNEL_ONE_ID = "channel_id_foreground"val CHANNEL_ONE_NAME = "Channel One"var notificationChannel: NotificationChannel? = nullnotificationChannel = NotificationChannel(CHANNEL_ONE_ID,CHANNEL_ONE_NAME, NotificationManager.IMPORTANCE_LOW)nb.setChannelId(CHANNEL_ONE_ID)val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManagermanager.createNotificationChannel(notificationChannel)}nb.setSmallIcon(R.mipmap.ic_launcher)nb.setContentTitle(getString(R.string.notification_title))nb.setContentText(getString(R.string.notification_Content))try {startForeground(FORGROUND_ID, nb.build())} catch (e: Exception) {e.printStackTrace()}}
}

3.3.4 华为异常检测日志

可以明确,不会触发Sensor的异常通知提醒,但是有日志输出

2022-06-21 15:55:02.841 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330389ms, pkg:com.sufadi.blocksensor
2022-06-21 15:55:02.860 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330408ms, pkg:com.huawei.health
2022-06-21 15:55:02.863 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330406ms, pkg:com.ss.android.article.news
2022-06-21 15:55:02.874 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330417ms, pkg:com.cootek.crazyreader
2022-06-21 15:55:02.888 2585-2839/com.huawei.iaware D/APwActAnalysis: not process sensor 330428ms, pkg:com.huawei.hwireaderprivate void analyseSensorAct(AppPowerRecord appPowerRecord, long duration) {long sensorTime = appPowerRecord.getSensorTime();int powerLevel = AppPowerLevelConfig.getPowerLevel(3);if (mIAbnormalPolicy.isAbnormalOptimOkay(appPowerRecord.mAppName, appPowerRecord.mUid, -1, "sensor", duration, (int) sensorTime) >= 1) {Log.i("APwActAnalysis", "PAS sensor optim: " + appPowerRecord.mAppName);} else if (!isImportantOsApp(appPowerRecord.mAppName, appPowerRecord.mUid, true)) {if ((powerLevel == 2 || powerLevel == 3) && DEBUG_USB) {Log.d("APwActAnalysis", "not process sensor " + sensorTime + "ms, pkg:" + appPowerRecord.mAppName);}}}

测试apk-异常管控Sensor攻击者开发相关推荐

  1. 测试apk-异常管控Bluetooth攻击者开发

    1. 目的 基于<软件绿色联盟应用体验标准>中 Bluetooth 资源的定义,对 Bluetooth 后台持续定位的测试apk.旨在触发手机中异常功耗管控机制. 2. 测试步骤 H手机和 ...

  2. 测试apk-异常管控Gps攻击者开发

    1. 目的 基于<软件绿色联盟应用体验标准>中 GPS 资源的定义,对 GPS 后台持续定位的测试apk.旨在触发手机中异常功耗管控机制. 2. 测试步骤 H手机和T手机.其他手机进行安装 ...

  3. 测试apk-异常管控WiFi Scan攻击者开发

    1. 目的 基于<软件绿色联盟应用体验标准>中 WiFi scan 资源的定义,对 WiFi scan 后台持续扫描的测试apk.旨在触发手机中异常功耗管控机制. 没有弹出消息通知,但是确 ...

  4. java开发常见异常_最常见的Java异常及其对Java开发人员的评价

    java开发常见异常 我知道我说过在完成视频之前我不会发帖,但这一直困扰着我. 至于视频的更新,我有些懒散,有些忙碌,但是我已经准备好记录第一集,这是我第一次有机会,而且我不需要太多的编辑. 无论如何 ...

  5. 最常见的Java异常及其对Java开发人员的评价

    我知道我说在完成视频之前我不会张贴帖子,但这一直困扰着我. 至于视频的更新,我有些懒散,有些忙碌,但是我已经准备好记录第一集,这是我第一次有机会,而且我不需要太多的编辑. 无论如何,还是今天的话题. ...

  6. 云上可靠性测试:让我们一起给开发找点事儿

    摘要:在产品上云之前,云上数据的可信(安全性.可靠性等)成为大家关注的重点. 引言 疫情之下,科技支撑有目共睹,多个产业迎来逆势增长.科技创新赋能的"云技术",不再仅仅是战&quo ...

  7. 海云安应用安全测试、移动应用安全、开发安全再次上榜

    2022年4月27日,数说安全正式发布<2022年中国网络安全市场全景图>(以下简称全景图),海云安实力上榜应用安全测试.移动应用安全.开发安全三个领域. 数说安全作为一家行业内以数据为基 ...

  8. APP渗透测试-----APK反编译

    本系列文章旨在对于有一定网络安全基础的人员,在日常工作中对APP进行安全测试,请勿应用非法途径. 一.准备必要工具 工欲善其事,必先利其器,首先我们要下载好反编译apk时需要的相关工具 1.1.使用工 ...

  9. [PHPUnit]自动生成PHPUnit测试骨架脚本-提供您的开发效率【2015升级版】

    2019独角兽企业重金招聘Python工程师标准>>> 场景 在编写PHPUnit单元测试代码时,其实很多都是对各个类的各个外部调用的函数进行测试验证,检测代码覆盖率,验证预期效果. ...

最新文章

  1. 小李飞刀:刷题第四弹!
  2. 前端须知的 Cookie 知识小结
  3. python系统目录_Python创建系统目录的方法
  4. hadoop二次排序
  5. CodeVs——T 4919 线段树练习4
  6. Python 之父退休,C 语言之父与世长辞,各大编程语言创始人现状大曝光!
  7. 使用jquery版本的viewer.js图片更新的问题
  8. C++之set()函数和get()函数探究
  9. 国产达梦数据库安装教程(DM7,Windows)
  10. smobiler中实现页面切换_.Net语言Smobiler开发之如何在手机上实现表单设计
  11. 关于验证码错误的解决办法
  12. u盘为什么要安全弹出?丢失的数据怎么恢复?
  13. 磁盘被写保护怎样去掉
  14. 无线AP人员定位实现调研以及方案编写
  15. Java环境配置 win10教程
  16. octomap(1):octomap_server报错MessageFilter [target=odom_combined ]: Dropped 100.00% of messages so far
  17. 芯片制造良率分析系统YMS
  18. rrpp协议如何修改_《技术进阶:理解RRPP协议.ppt
  19. APK瘦身优化检测工具-Matrix ApkChecker 使用
  20. Ubuntu 18.04 Wine下安装微信并成功解决疑难杂症

热门文章

  1. 百度地图 地址查询经纬度 插件vue-baidu-map
  2. Linux input 子系统详解
  3. 京东新通路,零售价值增量发展的新范式
  4. 英文不好到底能不能学会编程?
  5. 微软翻译离线简体中文服务器,微软翻译新增离线翻译功能,但使用体验并没有想象中的好...
  6. 如何保存微信视频到本地,微信朋友圈怎么发本地的视频。
  7. OneNMP路由器、交换机监控
  8. [电池]设置-电池-上次充满电时间计算
  9. win git 报错 no matching host key type found. Their offer: ssh-rsa
  10. 卷积神经网络调参技巧(2)--过拟合(Dropout)