欢迎使用CSDN-markdown编辑器

来源:互联网 发布:淘宝网店流量 编辑:程序博客网 时间:2024/05/20 05:30

修改点:对流氓软件做特殊处理,强制增加wakelock超时处理
测试建议:打开流氓软件应用,使用adb shell dumpsys power确认其持锁,2分钟后重新查看其锁消失
base/core/java/android/os/PowerManager.java | 31 +++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

diff –git a/base/core/java/android/os/PowerManager.java
— a/base/core/java/android/os/PowerManager.java
+++ b/base/core/java/android/os/PowerManager.java
@@ -1108,9 +1108,32 @@ public final class PowerManager {
public void acquire() {
synchronized (mToken) {
acquireLocked();
+ /* 20171012 add, begin */
+ /* A temporary solution for special package, it’s bad somehow */
+ if(mPackageName != null && mPackageName.equals(“com.example.businesshall”)){
+ mHandler.postDelayed(mDefReleaser, 2 * 60 * 1000);
+ }
+ /* 20171012 add, end */
}
}

  • /* 20171012 add, begin */
  • private final Runnable mDefReleaser = new Runnable() {
  • public void run() {
  • synchronized (mToken) {
  • if (mHeld) {
  • Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, mTraceName, 0);
  • try {
  • Log.v(TAG, “force release wakelock for GMS!”);
  • mService.releaseWakeLock(mToken, 0);
  • } catch (RemoteException e) {
  • }
  • mHeld = false;
  • }
  • }
  • }
  • };
  • /* 20171012 add, end */
    /**
    * Acquires the wake lock with a timeout.
    *


    @@ -1124,6 +1147,14 @@ public final class PowerManager {
    public void acquire(long timeout) {
    synchronized (mToken) {
    acquireLocked();

  • /* 20171012 add, begin */
  • /* A temporary solution for special package, it’s bad somehow */
  • if(mPackageName != null && mPackageName.equals(“com.example.businesshall”)){
  • if(timeout >= 5 * 60 * 1000){
  • timeout = 5 * 60 * 1000;
  • }
  • }
  • /* 20171012 add, end */
    mHandler.postDelayed(mReleaser, timeout);
    }
    }
原创粉丝点击