手机锁机软件原理

这两天在手机论坛里面发现好多手机被锁屏软件锁屏了,锁屏效果(模拟器中)如下:

初次接触这个软件,我一直以为是锁定了fastloader,但是问哪些被锁屏的人,他们没有root,也没有刷过机,只是单单的安装了这个软件,所以就得排除锁定loader的方式。

直到后来反编译这个锁屏软件的安装包,才解开它真正实现的原理:

  1. 通过锁定home键,锁定返回键,这样单凭按键是无法退出该应用。

  2. 用户可能选择强制关机,一旦开机之后,系统就会恢复到桌面应用,而不是本应用,为了开机之后打开本应用,就需要是在应用中注册一个开机完成的广播接受者

    广播如下:android:name="android.intent.action.BOOT_COMPLETED"/>,收到该广播后就通过intent打开本应用。

3. 当应用不在前台时,比如如下情况: 手机被锁定了,手机来电了,这时应用就在电话应用的下一个应用,这个时候你可以按下home键,将后台的那个应用侧滑清除掉,

     

   为了保证侧滑不被清楚点,它便在后台开启一个看门狗服务,每150ms检测一下前台应用应用是不是我的应用,如果不是就跳转到我的应用,也就是判断上图中最底下的应用是不是我的锁屏应用,如果是的话,就重新打开我的应用。

应用关键代码如下: 

  //4.0以上锁定home键
    getWindow().setFlags(0x80000000, 0x80000000);

  //这个方法是锁定home键,4.0下可用,4.0上对部分机型可用.
    getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);

  //屏蔽返回键 

     

@Override
public void onBackPressed() {

  //屏蔽父类的返回处理
  //super.onBackPressed();
}

开机广播接受处理:

 public class BootBroadcastReceiver extends BroadcastReceiver
  {
    String action_boot="android.intent.action.BOOT_COMPLETED";

    @Override
    public void onReceive(Context context, Intent intent)
    {

      /*因为手机刷了MIUI,我不知道能不能自启,如果不能,删除注释符号。*/

        if (intent.getAction().equals(action_boot)){
      Intent ootStartIntent=new Intent(context, MainActivity.class);
      ootStartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(ootStartIntent);
        }

    }

  }

开门狗代码:

public class killpoccessserve extends Service
{
  Context context;
  @Override
  public IBinder onBind(Intent p1)
  {
    // TODO: Implement this method
    return null;
  }

  @Override
  public void onCreate()
  {
    context = this;
    //Handler线程,接收timertask的message,用于重启应用。
    final Handler h = new Handler(new Handler.Callback(){
      public boolean handleMessage(Message msg){
        ActivityManager am=(ActivityManager)context.getSystemService(context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> runningTasks = am.getRunningTasks(1);
        ActivityManager.RunningTaskInfo runningTaskInfo = runningTasks.get(0);
        ComponentName topActivity =runningTaskInfo.topActivity;
        String packageName =topActivity.getPackageName();
        if(packageName.equals("tk.jianmo.study")){//判断是否是本应用
        }else{
           //不是本应用,启动应用,并kill掉之前的应用
            Intent intent=new Intent();
            intent.setClass(context,MainActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
            am.killBackgroundProcesses(packageName);
          }
        return false;
      }
    });

    Timer timer;
    TimerTask timertask;
    timer = new Timer();
    timertask = new TimerTask(){
    @Override
    public void run(){
      h.obtainMessage().sendToTarget();

      }
    };

    timer.schedule(timertask, 0, 150);//0.15秒启动一次timertask,无延迟

  }

  @Override
  public void onStart(Intent intent, int startId){
    // TODO: Implement this method
    super.onStart(intent, startId);

  }

  @Override
  public void onDestroy()
  {
    // TODO: Implement this method
    super.onDestroy();
    }
}

解决办法:软件卸载(以下的解决办法程度递增的)

  1. 锁屏软件也是软件,只不过你启动该软件后是手机无法退出该软件,当然不排除你手速够快能在150ms(软件开发者设定,如果1s你就gg了)的时间内卸载该应用。

  2. 既然手机是无法退出该应用,那么我们可以借助电脑来卸载该软件,如果手机打开了usb调试,就可以通过手机助手在电脑中卸载安装在手机中的软件,如何没有开启的话,如  果手速够快的话,也可以在150ms时间内,打开usb调试。

  3. 甚至有些手机可以远程管理手机应用,甚至是清除数据。

4.手机数据双清。

5.手机刷机。

时间: 2024-10-09 19:58:11

手机锁机软件原理的相关文章

红米手机真机调试问题记录

1.先打开红米手机上面的USB调试选项 方法:打开红米手机的USB调试,可能其它一些机器有一些不一样,先打开[系统设置],切换到[全部设置]tab页,打开最下面的[关于手机],里面有一项是[Android版本],在这个选项上面连按4-5次,才会打开[开发者选项],此时回到外面的[全部设置],你会发现之前的[关于手机]上面多了一项[{}开发者选项],点进去研究下吧,里面有[USB调试]开关.也许是Android4.0之后都是这样的?!没有去所有的手机上面验证过,但是ROM应该是可以修改的. 2.打

apple iphone 3gs 有锁机 刷机 越狱 解锁 全教程(报错3194,3014,1600等问题可参考)

以自身经历列步骤如下:(基本思路就是刷6.1.6,越狱,降级基带,解锁) 一.准备工作 1.下载3gs 6.1.6官方固件.地址:http://act.feng.com/wetools/index.php?r=iosRom/index PS:为什么要使用6.1.6,是因为苹果已经关闭了6.1.2.6.1.3等shsh验证(有shsh备份也无效),因此只要是更新这种固件,毫无疑问会出现3XXX问题,改host,打开tss服务器也是没有用的. 2.下载3gs 6.0官方固件.地址同上.注意是选6.0

HTC A510C电信手机刷机过程

HTC A510C电信手机刷机过程记录 Writed by Peter Hu(2014.6.7) ON WIN7_64 刷机需要的步骤: 1)  将S-ON加密保护式去掉,改成S-OFF模式,这样才能刷机,这一步是最难的. 2)  刷入RECOVERY 包(俗称RC) 3)  刷入ROM包 S-ON状态置为S-OFF状态 将S-ON改为S-OFF的办法是想办法做出一个GOLDCARD.IMG文件来,然后用HEX工具将其写到SD卡的BOOT区中.成功的方式是:从网上下载了一个APK程序(金卡镜像一

锁屏软件项目可行性研究报告

1引言 1 1.1编写目的 1 1.2背景 1 1.3定义 1 1.4参考资料 1 2可行性研究的前提 2 2.1要求 2 2.2目标 2 2.3条件.假定和限制 3 2.4进行可行性研究的方法 3 2.5评价尺度 3 3对现有系统的分析 3 3.1处理流程和数据流程 4 3.2工作负荷 4 3.3费用开支 4 3.4人员 4 3.5设备 4 3.6局限性 4 4所建议的系统 4 4.1对所建议系统的说明 5 4.2处理流程和数据流程 5 4.3改进之处 5 4.4影响 5 4.4.1对设备的影

用swift开发自己的MacOS锁屏软件(3)

前两篇中实现了MacOS端的锁屏软件,现在需要再实现一个移动端的app用来实现和mac的通信,以后的文章可能就会两个项目来回穿插了. 写完MacOS的软件又回来接着写iOS真的是享受,看着堆积如山的各种资料文档,爽啊,那就现在动手开写吧 首先是创建项目,这个没有什么多说的,创建好项目之后,哈哈,再写一个hello world吧. 依然是拖拽一个label和一个button,label刚开始显示的是Hello iOS,然后点击button之后就会显示Hello World了. 这里和macos不一

“重力锁屏”软件简介

一.产品介绍 重力锁屏是基于android系统的一款锁屏软件.它利用重力感应器来判断用户的动作从而自动锁屏亮屏,是锁屏软件的一大创新.相比传统的锁屏软件,“重力锁屏”从可操作性.方便性.功能全面性都有了很大的提升,可以让用户方便快捷的进行锁屏操作. 二.主要特色 (1)调用重力传感器,解放电源键.“重力锁屏”软件调用重力传感器,根据用户翻扣手机或手机朝下的运动状态,实现手机的亮.暗屏.解放手机电源键,延长其使用寿命.并且重力感应功能可开可关,用户可根据自己的喜好和习惯进行设置. (2)界面友好.

(运存扩展其)Android手机内存扩展软件RAMEXPANDER使用教程

广义的手机系统内存分为"手机运行内存"及"手机非运行内存".手机的"运行内存"即手机的RAM,相当于电脑的内存(或者叫内存条),手机的"非运行内存",即手机的ROM,是机身内部存储器,相当于电脑的硬盘.手机"运行内存"大,手机就能流畅地运行多个程序,手机"非运行内存"大,能存放更多的数据.Android手机系统内存可以通过"设置>应用程序>管理应用程序"来

手机文件加密软件

手机文件加密软件 给手机文件进行加密你会怎么做?有的人会说这个很简单,直接对手机屏幕进行锁屏就可以了,这个真的是太low了,稍微亲近一点的人或是有心人看过一次就会知道你的开机密码.所以一定要找一个专业的文件加密软件,这样才能够对文件起到加密作用. 现在的我们无时无刻都离不开电脑以及网络,手机更是必备携带之物.那么这样也就有了对数据安全的要求,怎么对手机文件进行加密呢?护密文件夹加密软件,提供高级别的移动数据加密.真正起到文件夹加密的作用,才会让所想要保存的文件绝对的没有任何后顾之忧.毕竟,我们对

手机刷机方法,你刷机了吗

你的手机是什么型号的,你刷机了吗?在刷机的过程中,是不是还在为刷机的问题烦恼,诸多的问题我们要做好哪些准备,今天我就和大家分享一下手机刷机的方法和手机刷机的准备. 刷机简介 主要的分为两种刷机方法:线刷和卡刷 1:线刷法(一般是官方所采取的升级方式,主要用来刷固件,如果手机故障造成无法开机等情况,我们可以考虑使用线刷来修复手机系统) 此方法可以通过手机连接电脑,在电脑上进行操作完成刷机,rom包通常为tar格式. 2:卡刷法(一般是用来升级的,相比较,卡刷在刷机时表现的更稳定,不至于受到断电,数