测试apk-异常管控Alarm攻击者开发

1. 目的

基于《软件绿色联盟应用体验标准》中alarm资源的定义,进行alarm异常占用的测试apk。旨在触发手机中异常功耗管控机制。
alarm频繁唤醒系统

该apk工作原理:
建立一个后台服务,使用RTC_WAKEUP无限次每分钟定时alarm唤醒系统。

红线标准:灭屏下使用RTC_WAKEUP或ELAPSED_REALTIME_WAKEUP的异常唤醒次数超过12次以上且间隔小于180秒。

2. 测试步骤

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

2.1 手机白名单设置方法:

手机管家->应用启动设置:允许自启动、允许关联启动、允许后台启动
H手机白名单
T手机:手机管家->自启动管理:允许自启动

2.2 运行本apk

运行本apk,按Home键退出,灭屏待机至少15分钟。再灭屏观察是否通知栏有检测到异常
红线标准:灭屏下使用RTC_WAKEUP或ELAPSED_REALTIME_WAKEUP的异常唤醒次数超过12次以上且间隔小于180秒。
alarm频繁唤醒系统

3. apk 源码

3.1 UI

alarm异常攻击者UI截图

3.2 核心逻辑

建立一个后台服务,使用RTC_WAKEUP无限次每分钟定时alarm唤醒系统。

package com.sufadi.blockalarm

import android.app.AlarmManager
import android.app.Service
import android.content.Context
import android.content.Intent
import android.os.IBinder
import android.util.Log

/**
 * 建立一个后台服务,使用RTC_WAKEUP无限次每分钟定时alarm唤醒系统。
 */
class AlarmService: Service() {

    val TAG = "NonStopAlarmService"
    var count = 0

    override fun onBind(p0: Intent?): IBinder? {
        return null
    }

    override fun onCreate() {
        super.onCreate()
        Log.d(TAG, "AlarmService start")
        startNonStopAlarm()
    }

    /**
     *  <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"></uses-permission>
     */
    private fun startNonStopAlarm() {
        count ++
        Log.d(TAG, "startNonStopAlarm count: $count")
        val curTime = System.currentTimeMillis()
        val mAlarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
        mAlarmManager.setExact(AlarmManager.RTC_WAKEUP, (curTime + 60_000), TAG, mInnerAlarmListener, null)
    }

    private val mInnerAlarmListener = AlarmManager.OnAlarmListener {
        startNonStopAlarm()
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
universal-apk-builder是一个用于构建通用APK(Android应用程序包)的工具。它的作用是将一个应用程序的源代码和资源文件转换成可以在不同Android设备上运行的通用APK文件。 通常在开发Android应用程序时,需要为不同的设备和系统版本适配不同的APK文件。这意味着开发人员需要为每个设备和系统版本构建多个APK文件,增加了工作量和开发难度。 universal-apk-builder解决了这个问题。它可以根据输入的源代码和资源文件,自动进行适配和优化,生成一个通用的APK文件。这个通用APK文件可以在大多数Android设备和系统版本上运行,不再需要为每个设备和系统版本构建单独的APK文件。 使用universal-apk-builder的好处是显而易见的。首先,它大大减少了开发人员的工作量和开发周期,因为只需要构建一个通用的APK文件即可。其次,通用APK文件的运行效果和性能可以得到更好的保证,因为它经过了适配和优化处理。 然而,与任何工具一样,universal-apk-builder也有一些限制。它可能无法完全适配所有的Android设备和系统版本。在某些特殊情况下,仍然需要构建特定设备和系统版本的APK文件。此外,由于通用APK文件需要兼容多种设备和系统版本,可能会对应用程序的大小和性能产生一些影响。 总体而言,universal-apk-builder是一个实用的工具,可以帮助开发人员简化APK构建过程,提高开发效率。但开发人员仍需根据具体情况和需求来选择是否使用该工具,以及是否进行特定设备和系统版本的适配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值