Android手机加密进度

本文探讨了Android手机加密过程中不显示进度条的问题。从0x001到0x06,详细解释了加密的各个阶段,包括shutdown framework、vold加密、mini framework启动以及CryptyKeep的运行机制。关键涉及到的属性有vold.decrypt和vold_encrypt_progress。通过对cryptfs.c文件的分析,揭示了设置加密进度的方法。问题的解决需要关注init.rc中的触发器和mountService.encryptStorage的分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:
加密进度显示简化过程是这样的:0x001 – shutdown framework; 0x02 – 开始执行加密(vold单独运行), 进度更新到system property中; 0x03 – start mini framework;0x04 — Core App 被解析;0x05 – 声明响应HOME的CryptyKeep启动。0x06 – CryptyKeep每1s检查一次system property。

问题背景:OEM厂家,点“加密手机”,不显示加密的进度条
下面是问题分析过程:
0x01: 加密操作的开始位置:

public class CryptKeeperConfirm extends Fragment
mFinalClickListener.onClick
{...
            Intent intent = new Intent(getActivity(), Blank.class);
            intent.putExtras(getArguments());
            startActivity(intent);
...
}  
//执行跳转到内部的 Activity: CryptKeeperConfirm.Blank
onCreate()
{...
IBinder service = ServiceManager.getService("mount");
IMountService mountService = IMountService.Stub.asInterface(service);
mountService.encryptStorage(args.getInt("type", -1), args.getString("password"));
}

0x02: 再看还有个CryptKeeper Activity,是个什么鬼?
整个setting找不到这个Activity的启动代码。但是细看会发现,这个界面就是进度条界面。
具有开机启动的声明:

与进度有关系的有两个属性:vold.decrypt , vold_encrypt_progress 。
检索这两个属性,注意力转移到 cryptfs.c

0x03:cryptfs.c 文件中的关键点分析

property_set("vold.encrypt_progress", "0"); 
property_set("vold.encrypt_progress", buf);
property_set("vold.encrypt_progress", "100"); 

设置进度

property_set("vold.decrypt", "trigger_shutdown_framework"); 
property_set("vold.decrypt", "trigger_restart_framework"); 
property_set("vold.decrypt", "trigger_restart_min_framework")

上面这几个可以亲自试一下,trigger_shutdown_framework, framework会挂掉,还有adb 端口

property_set(ANDROID_RB_PROPERTY, "reboot")

上面的属性设置,直接重启Android。

没有碰到过类似的命令? 请参考:http://www.bkjia.com/Androidjc/924621.html
在android/system/core/rootdir/下执行如下指令可以得到
grep -h “^on” –include=”*.rc” -r .
init.rc 中有如下 触发器 :

on property:vold.decrypt=trigger_shutdown_framework
    class_reset late_start
    class_reset main

on property:sys.powerctl=*
    powerctl ${sys.powerctl}

待续:

0x0A: mountService.encryptStorage 分析
(待补充)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值