该设的都设了,要加的也加了,使用官方的api来恢复出厂设置,执行下面的代码之后,就一直停留在关机的Log,也不开机。
private OnClickListener mWipeDataListener = new OnClickListener() {
public void onClick(View v) { boolean active = mDPM.isAdminActive(mDeviceAdminSample);
if (active) {
 mDPM.wipeData(0);
} }
};串口打印如下信息:SysRq : Emergency Remount R/O
Emergency Remount complete
Restarting system with command 'recovery'.
SysRq : Emergency Remount R/O
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = dab04000
[00000000] *pgd=1aae7031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] SMP
last sysfs file: /sys/devices/platform/LIPP_6300ETH.0/net/eth0/ifindex
Modules linked in: uvcvideo videodev v4l1_compat snd_usb_audio snd_usb_lib snd_cnxt snd_rawmidi snd_seq_device snd_hwdep snd_pcm snd_page_alloc snd_timer snd ipv6 pvrnxpdc pvrsrvkm vpmfbDrv(P) lnxpvrDrv(P) lnxtmvssDrv lnxtmvssDrvGPL lnxtmasDrv(P) lnxcssDrv lnxfssDrv lnxscsDrv lnxplatDrv lnxnotifyqDrv lnxKKALDrv lnxplatnativeDrv
CPU: 0    Tainted: P            (2.6.34 #1)
PC is at exit_creds+0x10/0xcc
LR is at __put_task_struct+0x40/0x98
pc : [<c0068318>]    lr : [<c0049928>]    psr: 20000013
sp : d8745e10  ip : dfe7d448  fp : dead0002
r10: 00000000  r9 : d8744000  r8 : 00000002
r7 : 00000000  r6 : 00000000  r5 : df627968  r4 : df627960
r3 : 00000000  r2 : d8745e18  r1 : 00000002  r0 : 00000000
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c53c7d  Table: 1ab0404a  DAC: 00000015
Process Thread-89 (pid: 4000, stack limit = 0xd87442f8)
Stack: (0xd8745e10 to 0xd8746000)
有人遇到过吗?恢复出厂设置

解决方案 »

  1.   

    回复出厂设置参考如下:
    packages\apps\Settings\src\com\android\settings\MasterClearConfirm.java
        private Button.OnClickListener mFinalClickListener = new Button.OnClickListener() {        public void onClick(View v) {
                if (Utils.isMonkeyRunning()) {
                    return;
                }            if (mEraseInternal) {              
                    Environment.setDefaultStorageType(Environment.StorageType.EMMC);
                    try {
                         Thread.sleep(200);
                    } catch (Exception exp) {
                    }
                    Intent i = new Intent("android.intent.action.MASTER_CLEAR");
                    i.putExtra("IS_FORMAT", mEraseInternal);
                    getActivity().sendBroadcast(i);
        } else {
                    /* move format SD card action to method formateSDCard() */
                    getActivity().sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR"));
                }        }
        };广播处理是在framework层frameworks\base\services\java\com\android\server\MasterClearReceiver.java至于相关权限在网上可以搜索下
      

  2.   

    请问你验证过吗?可以实现恢复出厂设置吗?要加的权限我也加了,执行之后,却停在关机的Log上,然后就不动了。