`
Leif_冬
  • 浏览: 47963 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

android FactoryReset

阅读更多
private void doMasterClear() {
    Intent intent = new Intent(Intent.ACTION_FACTORY_RESET);
    intent.setPackage("android");
    intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
    intent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm");
    intent.putExtra(Intent.EXTRA_WIPE_EXTERNAL_STORAGE, true);
    intent.putExtra(Intent.EXTRA_WIPE_ESIMS, true);
    getActivity().sendBroadcast(intent);
    // Intent handling is asynchronous -- assume it will happen soon.
}

private ProgressDialog getProgressDialog() {
    final ProgressDialog progressDialog = new ProgressDialog(getActivity());
    progressDialog.setIndeterminate(true);
    progressDialog.setCancelable(false);
    progressDialog.setTitle(
            getActivity().getString(R.string.master_clear_progress_title));
    progressDialog.setMessage(
            getActivity().getString(R.string.master_clear_progress_text));
    return progressDialog;
}

private void test(){
    if (Utils.isMonkeyRunning()) {
        return;
    }

    final PersistentDataBlockManager pdbManager = (PersistentDataBlockManager)
            getActivity().getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
    final OemLockManager oemLockManager = (OemLockManager)
            getActivity().getSystemService(Context.OEM_LOCK_SERVICE);

    if (pdbManager != null && !oemLockManager.isOemUnlockAllowed() &&
            Utils.isDeviceProvisioned(getActivity())) {
        // if OEM unlock is allowed, the persistent data block will be wiped during FR
        // process. If disabled, it will be wiped here, unless the device is still being
        // provisioned, in which case the persistent data block will be preserved.
        new AsyncTask<Void, Void, Void>() {
            int mOldOrientation;
            ProgressDialog mProgressDialog;

            @Override
            protected Void doInBackground(Void... params) {
                pdbManager.wipe();
                return null;
            }

            @Override
            protected void onPostExecute(Void aVoid) {
                mProgressDialog.hide();
                if (getActivity() != null) {
                    getActivity().setRequestedOrientation(mOldOrientation);
                    doMasterClear();
                }
            }

            @Override
            protected void onPreExecute() {
                mProgressDialog = getProgressDialog();
                mProgressDialog.show();

                // need to prevent orientation changes as we're about to go into
                // a long IO request, so we won't be able to access inflate resources on flash
                mOldOrientation = getActivity().getRequestedOrientation();
                getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
            }
        }.execute();
    } else {
        doMasterClear();
    }
}

 

另有两篇Blog有更详细的介绍:
https://blog.csdn.net/xct841990555/article/details/88243733

https://blog.csdn.net/qq_27686729/article/details/80785709

 

分享到:
评论

相关推荐

    WIndow android adb platform-tools

    5. **恢复出厂设置**:`adb shell wipe data/factoryreset`(需谨慎使用,会清除所有用户数据)。 ### 实战应用 1. **远程调试**:结合无线连接功能,开发者可以在远离设备的电脑上进行远程调试。 2. **应用自动...

    android adb

    - **恢复出厂设置**:`adb reboot recovery`进入恢复模式,然后执行`adb shell wipe data factoryreset`。 - **远程调试JavaScript**:配合Chrome浏览器的Remote Devices功能,实现Webview中的JavaScript调试。 ###...

    ADB+Shell

    2. 恢复出厂设置:`wipe data/factoryreset`执行设备数据清除,但需谨慎使用。 3. 静默安装APK:`adb install -r &lt;apk_path&gt;`强制更新已存在的应用。 4. 捕获屏幕截图:`adb exec-out screencap -p &gt; screenshot.png...

    救砖软件adb

    4. **清除数据**:在无法正常启动的情况下,可以使用ADB执行数据清除,如`adb shell wipe data factoryreset`,但这会丢失所有用户数据。 ### 注意事项 1. **USB驱动**:确保电脑上安装了正确的USB驱动,否则可能...

    手动清理手机

    (d) 使用特定的命令行指令进行WIPE,如`adb shell wipe data factoryreset`和`adb shell wipe cache partition`;(e) 重启设备。 8. **故障排查**:如果手动WIPE后问题仍未解决,可能需要进一步的故障排查,如检查...

    ota_from_target_files脚本分析.docx

    在 Android 系统升级中,OTA_from_target_files 脚本扮演着至关重要的角色。该脚本的主要目的在于生成整包、差分包和满足于亚旭 OEM package(如 factoryreset.zip、fullfactoryreset.zip 等)。在本文中,我们将对 ...

    安卓 刷机 华为

    对于Android设备而言,这通常意味着安装一个新的自定义ROM(Read-Only Memory),或者进行系统级的定制。刷机可以带来多种好处,例如提升性能、延长设备寿命、获得更高级别的自定义功能等。然而,刷机也有一定的风险...

    defy刷机教程2.pdf

    - wipe(清除)操作:涉及到清除数据分区(wipedata/factoryreset)和缓存分区(wipecachepartition)。 请注意,刷机可能会使设备的保修失效,且在操作过程中存在一定的风险,包括设备变砖(即无法正常使用)、...

    LG_P990_P993_Root+Recovery+刷机(详细图文教程)

    - 执行双wipe操作:即选择“wipedata/factoryreset”和“wipecachepartition”两项。 - 从SD卡选择ROM文件并进行刷机操作。 - 刷机完成后,重启手机即可。 #### 四、注意事项 1. **刷机风险**:刷机操作可能会导致...

    9128双清教程

    双清操作是解决Android设备系统故障的一种有效方法,它能够清除所有的用户数据和个人设置,让设备恢复到出厂状态。对于型号为9128的设备来说,遵循本教程中的步骤即可轻松完成双清。值得注意的是,在进行双清操作前...

    U8150刷机教程

    华为U8150是一款经典的智能手机,搭载Android 2.2操作系统。随着时间的推移,用户可能希望为这款设备刷入新的ROM,以获取更多的功能或者解决一些已知的问题。本文将详细介绍U8150的刷机步骤,帮助用户顺利完成操作。...

    三星I9001刷机教程

    4. **使用音量键选择wipedata/factoryreset**:进入Recovery界面后,使用音量键选择这一项,并按Home键确认。 5. **清除所有用户数据**:选择“yes--delete all user data”,并按Home键确认。 6. **清除缓存**:...

    870刷机教程

    - **Recovery模式下驱动**:`android_usb_driver_for_recovery.rar`,用于确保手机在Recovery模式下能够被电脑识别。 - **进入系统后的驱动**:`IMA870L_USBDriver.zip`,这是手机在正常操作系统的驱动程序。 2. ...

    G14刷机相关知识

    1. **wipedalvik-cache**:Dalvik缓存是指Android系统中的应用程序运行时产生的临时文件,这些文件可能会占用大量空间并且可能导致某些应用出现异常行为。通过清除Dalvik缓存,可以避免新系统受到旧缓存的影响。 2...

Global site tag (gtag.js) - Google Analytics