2016年setiings项目:
Android系统设置安全项加密,属于国外军方加密手机部分功能。
功能简述
1.点击设置,并打开应用,显示应用首页。
2.点击安全项,弹出密码框提示,默认密码6位,shy123。
3.首次输入默认密码,显示安全项页面,修改密码项。
4.密码要求采用MD5和SHA256混合加密。
服务端:
frameworks/base/core/java/com/android/internal/widget/ILockSettings.aidl
//增加两个方法
setSecurityPassword(String pwd)
getSecurityPassword()
frameworks/base/services/core/java/com/android/server/locksettings/LockSettingsService.java
public class LockSettingsService extends ILockSettings.Stub
201 // This class manages life cycle events for encrypted users on File Based Encryption (FBE)
202 // devices. The most basic of these is to show/hide notifications about missing features until
203 // the user unlocks the account and credential-encrypted storage is available.
204 public static final class Lifecycle extends SystemService {
205 private LockSettingsService mLockSettingsService;
206
207 public Lifecycle(Context context) {
208 super(context);
209 }
210
211 @Override
212 public void onStart() {
213 AndroidKeyStoreProvider.install();
214 mLockSettingsService = new LockSettingsService(getContext());
//发布远程服务,绑定name="lock_settings"
215 publishBinderService("lock_settings", mLockSettingsService);
216 }
217
//LockSettingsService类实现两个方法
setSecurityPassword(String pwd)
getSecurityPassword()
frameworks/base/services/core/java/com/android/server/SystemService.java
234 protected final void publishBinderService(String name, IBinder service,
235 boolean allowIsolated, int dumpPriority) {
236 ServiceManager.addService(name, service, allowIsolated, dumpPriority);
237 }
客户端:
frameworks/base/core/java/com/android/internal/widget/LockPatternUtils.java
266 public ILockSettings getLockSettings() {
267 if (mLockSettingsService == null) {
268 ILockSettings service = ILockSettings.Stub.asInterface(
269 ServiceManager.getService("lock_settings"));
270 mLockSettingsService = service;
271 }
272 return mLockSettingsService;
273 }
274
572 * get lock password.
573 * @return pwd.
574 */
575 public String getSecurityPasswords() {
576 try {
577 return getLockSettings().getSecurityPassword();
578 } catch (RemoteException re) {
Log.w(TAG,"getSecurityPasswords: "+re.getMessage());
579 return "";
580 }
581 }
582
572 * set lock password.
573 * @p pwd.
574 */
575 public void setSecurityPassword(String pwd) {
576 try {
577 getLockSettings().setSecurityPassword(String pwd);
578 } catch (RemoteException re) {
579 Log.w(TAG,"setSecurityPassword: "+re.getMessage());
580 }
581 }
582