设置-安全-手机加密功能讲解
设置-安全-手机加密功能讲解
此功能可以用来加密手机上的所有数据,包括 Google 帐户、应用数据、音乐和其他媒体信息、已下载的信息等。如果执行了加密操作,您每次开机时都必须输入数字 PIN 或密码。
请注意,上述 PIN 或密码与您在未加密状态下解锁手机时所用的相同,无法单独设置。
警告:加密操作无法撤消。要将手机恢复为未加密状态,唯一的方法是恢复出厂设置,但这会清除您的所有数据。
如果您的手机遭窃,加密可提供额外保护,某些组织可能要求或建议使用加密。在启用加密前,请先咨询您的系统管理员。很多情况下,您设置的加密 PIN 或密码是由系统管理员控制的。
在启用加密前,请做好以下准备:
(1) 设置锁定屏幕 PIN 或密码。
(2) 为电池充电。
(3) 为手机插上电源。
(4) 安排一个小时或更长时间进行加密过程,切勿中断此过程,否则会丢失部分或全部数据。
准备好启用加密后,请执行以下操作:
(1) 在主屏幕或“所有应用”屏幕中,触摸“设置”图标 。
(2) 依次触摸个人 > 安全 > 加密 > 加密手机。
(3) 请仔细阅读关于加密的信息。
如果您没有为电池充电或为手机插上电源,则无法使用加密手机按钮。如果您改变主意,不希望加密手机了,请触摸“返回”按钮。
警告:中断加密过程会导致数据丢失。
(4) 触摸加密手机。
(5) 输入锁定屏幕 PIN 或密码,然后触摸继续。
(6) 再次触摸加密手机。
此时加密过程开始,屏幕上会显示其进度。加密过程可能需要一个小时或更长时间,在此期间,您的手机可能会多次重新启动。
加密完成后,系统会提示您输入 PIN 或密码。
以后,您每次开机时都需要输入 PIN 或密码才能解密。
2、重置手机后,用户需要重新输入首次设置手机时需要输入的相同信息。如果用户一直是将数据备份到 Google 帐户的,则可通过设置过程中的某个选项恢复这些数据。
|
http://osxr.org/android/source/frameworks/base/core/java/android/app/admin/DevicePolicyManager.java#1142
1117 * Result code for {@link #setStorageEncryption} and {@link #getStorageEncryptionStatus}:
1118 * indicating that encryption is not supported.
1119 */
1120 public static final int ENCRYPTION_STATUS_UNSUPPORTED = 0;
1121
1122 /**
1123 * Result code for {@link #setStorageEncryption} and {@link #getStorageEncryptionStatus}:
1124 * indicating that encryption is supported, but is not currently active.
1125 */
1126 public static final int ENCRYPTION_STATUS_INACTIVE = 1;
1127
1128 /**
1129 * Result code for {@link #setStorageEncryption} and {@link #getStorageEncryptionStatus}:
1130 * indicating that encryption is not currently active, but is currently
1131 * being activated. This is only reported by devices that support
1132 * encryption of data and only when the storage is currently
1133 * undergoing a process of becoming encrypted. A device that must reboot and/or wipe data
1134 * to become encrypted will never return this value.
1135 */
1136 public static final int ENCRYPTION_STATUS_ACTIVATING = 2;
1137
1138 /**
1139 * Result code for {@link #setStorageEncryption} and {@link #getStorageEncryptionStatus}:
1140 * indicating that encryption is active.
1141 */
1142 public static final int ENCRYPTION_STATUS_ACTIVE = 3;
二 、service的调用
http://osxr.org/android/source/frameworks/base/services/java/com/android/server/DevicePolicyManagerService.java#2029
2023 /**
2024 * Hook to low-levels: Reporting the current status of encryption.
2025 * @return A value such as {@link DevicePolicyManager#ENCRYPTION_STATUS_UNSUPPORTED} or
2026 * {@link DevicePolicyManager#ENCRYPTION_STATUS_INACTIVE} or
2027 * {@link DevicePolicyManager#ENCRYPTION_STATUS_ACTIVE}.
2028 */
2029 private int getEncryptionStatus() {
2030 String status = SystemProperties.get("ro.crypto.state", "unsupported");
2031 if ("encrypted".equalsIgnoreCase(status)) {
2032 return DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE;
2033 } else if ("unencrypted".equalsIgnoreCase(status)) {
2034 return DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE;
2035 } else {
2036 return DevicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED;
2037 }
2038 }
2039
三、最后调用
http://osxr.org/android/source/frameworks/base/services/java/com/android/server/DevicePolicyManagerService.java#2029
2005 /**
2006 * Get the current encryption status of the device.
2007 */
2008 public int getStorageEncryptionStatus() {
2009 return getEncryptionStatus();
2010 }
四、settings的使用(一)
http://osxr.org/android/source/packages/apps/Settings/src/com/android/settings/SecuritySettings.java#0145
0140 // Add options for device encryption
0141 DevicePolicyManager dpm =
0142 (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
0143
0144 if (UserId.myUserId() == 0) {
0145 switch (dpm.getStorageEncryptionStatus()) {
0146 case DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE:
0147 // The device is currently encrypted.
0148 addPreferencesFromResource(R.xml.security_settings_encrypted);
0149 break;
0150 case DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE:
0151 // This device supports encryption but isn't encrypted.
0152 addPreferencesFromResource(R.xml.security_settings_unencrypted);
0153 break;
0154 }
0155 }
四、setting的使用(二)
0017 package com.android.settings;
0018
0019 import android.app.Activity;
0020 import android.app.Fragment;
0021 import android.app.StatusBarManager;
0022 import android.content.Context;
0023 import android.content.Intent;
0024 import android.os.Bundle;
0025 import android.os.Handler;
0026 import android.os.IBinder;
0027 import android.os.ServiceManager;
0028 import android.os.storage.IMountService;
0029 import android.util.Log;
0030 import android.view.LayoutInflater;
0031 import android.view.View;
0032 import android.view.ViewGroup;
0033 import android.widget.Button;
0034
0035 public class CryptKeeperConfirm extends Fragment {
0036
0037 public static class Blank extends Activity {
0038 private Handler mHandler = new Handler();
0039
0040 @Override
0041 public void onCreate(Bundle savedInstanceState) {
0042 super.onCreate(savedInstanceState);
0043
0044 setContentView(R.layout.crypt_keeper_blank);
0045
0046 if (Utils.isMonkeyRunning()) {
0047 finish();
0048 }
0049
0050 StatusBarManager sbm = (StatusBarManager) getSystemService(Context.STATUS_BAR_SERVICE);
0051 sbm.disable(StatusBarManager.DISABLE_EXPAND
0052 | StatusBarManager.DISABLE_NOTIFICATION_ICONS
0053 | StatusBarManager.DISABLE_NOTIFICATION_ALERTS
0054 | StatusBarManager.DISABLE_SYSTEM_INFO
0055 | StatusBarManager.DISABLE_HOME
0056 | StatusBarManager.DISABLE_RECENT
0057 | StatusBarManager.DISABLE_BACK);
0058
0059 // Post a delayed message in 700 milliseconds to enable encryption.
0060 // NOTE: The animation on this activity is set for 500 milliseconds
0061 // I am giving it a little extra time to complete.
0062 mHandler.postDelayed(new Runnable() {
0063 public void run() {
0064 IBinder service = ServiceManager.getService("mount");
0065 if (service == null) {
0066 Log.e("CryptKeeper", "Failed to find the mount service");
0067 finish();
0068 return;
0069 }
0070
0071 IMountService mountService = IMountService.Stub.asInterface(service);
0072 try {
0073 Bundle args = getIntent().getExtras();
0074 mountService.encryptStorage(args.getString("password"));
0075 } catch (Exception e) {
0076 Log.e("CryptKeeper", "Error while encrypting...", e);
0077 }
0078 }
0079 }, 700);
0080 }
0081 }
0082
0083 private View mContentView;
0084 private Button mFinalButton;
0085 private Button.OnClickListener mFinalClickListener = new Button.OnClickListener() {
0086
0087 public void onClick(View v) {
0088 if (Utils.isMonkeyRunning()) {
0089 return;
0090 }
0091
0092 Intent intent = new Intent(getActivity(), Blank.class);
0093 intent.putExtras(getArguments());
0094
0095 startActivity(intent);
0096 }
0097 };
0098
0099 private void establishFinalConfirmationState() {
0100 mFinalButton = (Button) mContentView.findViewById(R.id.execute_encrypt);
0101 mFinalButton.setOnClickListener(mFinalClickListener);
0102 }
0103
0104 @Override
0105 public View onCreateView(LayoutInflater inflater, ViewGroup container,
0106 Bundle savedInstanceState) {
0107 mContentView = inflater.inflate(R.layout.crypt_keeper_confirm, null);
0108 establishFinalConfirmationState();
0109 return mContentView;
0110 }
0111 }
<string name="crypt_keeper_desc" product="tablet" msgid="3839235202103924154">"您可以加密自己的帐户、设置、已下载的应用及其数据、媒体和其他文件。加密平板电脑后,您每次开机时都需要输入数字 PIN 或密码才能解密。取消加密的唯一方法就是恢复出厂设置,但这会清除平板电脑上的所有数据。"\n\n"加密过程需要 1 小时或更长时间。在开始加密前,电池必须有电,并且在加密完成前必须一直连接电源。如果您中断加密过程,则会丢失部分或全部数据。"</string>
<string name="crypt_keeper_button_text" product="default" msgid="2008346408473255519">"加密手机"</string>
五、encryptStorage的来源
http://osxr.org/android/source/frameworks/base/core/java/android/os/storage/IMountService.java#0628
public int encryptStorage(String password) throws RemoteException {
0629 Parcel _data = Parcel.obtain();
0630 Parcel _reply = Parcel.obtain();
0631 int _result;
0632 try {
0633 _data.writeInterfaceToken(DESCRIPTOR);
0634 _data.writeString(password);
0635 mRemote.transact(Stub.TRANSACTION_encryptStorage, _data, _reply, 0);
0636 _reply.readException();
0637 _result = _reply.readInt();
0638 } finally {
0639 _reply.recycle();
0640 _data.recycle();
0641 }
0642 return _result;
0643 }
0644
设置-安全-手机加密功能讲解相关推荐
- 设置-安全-手机加密功能解说
设置-安全-手机加密功能解说 此功能能够用来加密手机上的全部数据,包含 Google 帐户.应用数据.音乐和其它媒体信息.已下载的信息等.假设运行了加密操作,您每次开机时都必须输入数字 ...
- 【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
需要源码请点赞关注收藏后评论区留言私信~~~ 一.开启定位功能 手机定位分为卫星定位和网络定位两大类. (1)卫星定位 卫星定位服务由几个全球卫星导航系统提供. 卫星定位的原理是根据多颗卫星与导航芯片 ...
- android afw模式,[HUAWEI-TITANC328]手机加密功能开启后,工作区中添加超级备份手机不断重启的分析报告...
工作区中添加超级备份手机不断重启的分析报告 [华为反馈] [TIT-AL00C328B120_AFW_必现]创建工作空间后升级系统,升级失败,手机循环重启. 通过分析log发现,实际上这个问题与OTA ...
- 华为手机设置页面黑色_华为手机拨号功能怎么设置 华为手机拨号功能设置方法【介绍】...
无论智能手机发展再迅猛,通话始终是唯一的核心功能诉求.对此,今天小编就教大家3个让华为手机通话体验更加良好的技巧,感兴趣的花粉不妨往下看! 一.语音接听电话,方便的不要不要的 当有来电时不方便用手接听 ...
- android 加密手机功能,怎么为安卓手机加密
随着科技的进步,手机已经成为了我们日常生活中不可或缺的一部分,而安卓手机系统更是目前只能手机的主流系统.在进入安卓时代的今天,手机的使用太过于广泛了,在我们的手机中更是存满了私密的东西.如今,安卓手机 ...
- 华为如何拍火烧云_华为手机拍照功能介绍-设置通用功能
相比起OPPO手机之类的拍照手机,华为手机的拍照功能很多,对于懂得使用的人来说这些功能可以让他们拍出好照片,然而对于那些不会使用这些功能的人来说,拍出来的照片还不如OPPO之类的拍照手机拍出来的好看. ...
- id门禁卡复制到手机_怎么将手机当做门禁卡使用?给大家详解手机设置门禁卡功能...
随着科技的发展,手机的功能是越来越强大了 . 门禁卡,相信大家都不陌生.进出小区都需要刷卡,自从手机可以使用微信跟支付宝支付功能以来,很少人携带钱包出门,一部手机便可以打车.吃饭付钱 等.银行卡跟身份 ...
- 小米手机怎么复制加密门禁卡_小米手机NFC功能复制门禁卡功能升级手册,l加密卡也能添加!...
原标题:小米手机NFC功能复制门禁卡功能升级手册,l加密卡也能添加! 目前市面上的智能手机NFC功能开发最彻底的应该是小米手机 ,没有之一. 它不仅支持最为主流的模拟公交卡 .. 银行卡功能 ,也只有 ...
- 华为手机设置页面黑色_华为手机望远镜功能在哪里设置
在苹果手机中有一个放大器功能,开启这个功能之后,在用手机拍摄时,可以调节远近,倍网友称为望远镜功能.华为支持这一功能吗?在哪里打开 华为手机望远镜功能在哪里设置 华为没有望远镜功能,如果想要拍摄超远距 ...
最新文章
- 无监督特定类别的网格重建(U-CMR) | ECCV
- 我在家乡写代码(一)
- 配置MySQL5.7基于keepalived的GTID的双主复制
- HTML5学习笔记(一):初步印象
- BBAug: 一个用于PyTorch的物体检测包围框数据增强包
- 贝叶斯网络+推理+近似推理+变分法
- c/c++头文件之string.h、cstring与string的区别
- 分布式、微服务与集群的区别
- linux(Centos系统)部署项目(vue+nginx+tomcat)
- ppt手动放映怎么设置_PPT如何设置幻灯片自动播放免除手动一张一张的点击
- 电脑键盘部分按键失灵_键盘失灵_电脑键盘失灵怎么办_电脑键盘失灵_笔记本键盘失灵怎么办-太平洋IT百科...
- BeyondCompare4完美“破解“
- HP Proliant DL360 Gen9服务器开箱
- manjaro/arch chrome an application wants access to the keyring default keyring but it is locked 解决
- ps制作视:_制作自己的PS4游戏:“梦想”入门
- Python 实现 PDF转图片 图片转PDF
- 如何用tushare复盘
- python画河流图_python – 世界地图没有河流matplotlib /底图?
- java注册数据库驱动
- 后台系统发送验证码功能