Android factory data reset

念茜 2011-04-27 02:14:23
恢复出厂设置,系统重启,再次进入系统后,我怎样可以得知之前到底是否恢复出厂设置了呢?
怎样可以标记 恢复出厂设置 事件 ,我希望在系统重启后,根据客户需求,添加一些响应,怎么做呢?
...全文
1000 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangju900208 2011-09-26
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 yiyaaixuexi 的回复:]

引用 19 楼 freshui 的回复:
如果你是在源码上开发, 这个应该蛮简单的。 一般第一次开机或做factory reset后,肯定会报这个错误:
W/EntropyService( 761): unable to load initial entropy (first boot?)
W/EntropyService( 761): java.io.FileNotFoundExcept……
[/Quote]

你好,不知道你的相关问题解决没,能否借鉴下代码呢?谢谢。。
火箭猫 2011-05-05
  • 打赏
  • 举报
回复
是/cache/recovery/log里,不是logcat
念茜 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 up0826 的回复:]
我对上层不是很精通哈,不过我看系统里有很多现成的例子,比如你插着USB线开机,最后UI界面会说USB线连接了。同样的这个log文件在恢复出厂设置的时候是有的,等java层起来后就没了,你可以在最下面的某一个守护进程起来的时候检测这个log文件,然后上报给java层。比如可以用现成的Vold守护进程。
[/Quote]

插USB线开机启动,在UI界面显示通知这个我可以做到,但是log里我并没有发现有关恢复出厂设置的信息
火箭猫 2011-05-05
  • 打赏
  • 举报
回复
vold(sendMsg)-->MountService(sendBroadCast)-->你的UI监听程序
火箭猫 2011-05-05
  • 打赏
  • 举报
回复
我对上层不是很精通哈,不过我看系统里有很多现成的例子,比如你插着USB线开机,最后UI界面会说USB线连接了。同样的这个log文件在恢复出厂设置的时候是有的,等java层起来后就没了,你可以在最下面的某一个守护进程起来的时候检测这个log文件,然后上报给java层。比如可以用现成的Vold守护进程。
xqhrs232 2011-05-05
  • 打赏
  • 举报
回复
还没做到这方面的东西
念茜 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 freshui 的回复:]
如果你是在源码上开发, 这个应该蛮简单的。 一般第一次开机或做factory reset后,肯定会报这个错误:
W/EntropyService( 761): unable to load initial entropy (first boot?)
W/EntropyService( 761): java.io.FileNotFoundException: /data/system/entro……
[/Quote]


谢谢,我试了一下,没有问题!!谢谢谢
freshui 2011-05-05
  • 打赏
  • 举报
回复
如果你是在源码上开发, 这个应该蛮简单的。 一般第一次开机或做factory reset后,肯定会报这个错误:
W/EntropyService( 761): unable to load initial entropy (first boot?)
W/EntropyService( 761): java.io.FileNotFoundException: /data/system/entropy.dat (No such file or directory)
W/EntropyService( 761): at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
W/EntropyService( 761): at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
W/EntropyService( 761): at java.io.FileInputStream.<init>(FileInputStream.java:82)
W/EntropyService( 761): at java.io.FileInputStream.<init>(FileInputStream.java:134)
W/EntropyService( 761): at com.android.server.RandomBlock.fromFile(RandomBlock.java:45)
W/EntropyService( 761): at com.android.server.EntropyService.loadInitialEntropy(EntropyService.java:99)
W/EntropyService( 761): at com.android.server.EntropyService.<init>(EntropyService.java:86)
W/EntropyService( 761): at com.android.server.EntropyService.<init>(EntropyService.java:76)
W/EntropyService( 761): at com.android.server.ServerThread.run(SystemServer.java:109)
I/sysproc ( 761): System server: entering thread pool.

也就是在这个函数中:
private void loadInitialEntropy() {
try {
RandomBlock.fromFile(entropyFile).toFile(randomDevice);
} catch (IOException e) {
Slog.w(TAG, "unable to load initial entropy (first boot?)", e);
}
}


在catch中做你想做的就行了。
注意这是android起的第一个服务,如果你做的处理比较复杂,要用到android的其他服务,还是建议在此处只设置个标志(比如创建一个临时文件),放到之后再处理
念茜 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 up0826 的回复:]
是/cache/recovery/log里,不是logcat
[/Quote]


由于某种原因,项目中修改为即使恢复出厂设置,也不会创建/cache/recovery目录,为了提供清cache的速率。 所以这种方法在我们这个项目中不可行。
必须从正常重启和恢复出厂设置的差异来入手,/cache 不能利用了
念茜 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 up0826 的回复:]
是/cache/recovery/log里,不是logcat
[/Quote]


……
我分得清/cache/recovery/log 和 logcat
都说了是进入系统界面之前了
念茜 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 up0826 的回复:]
哦,android界面跑起来后会删除cache/recovery/log文件,不是清空cache分区。
[/Quote]

那怎么办?我必须实现让板子重启后,自动判断后做出响应。
火箭猫 2011-05-04
  • 打赏
  • 举报
回复
哦,android界面跑起来后会删除cache/recovery/log文件,不是清空cache分区。
火箭猫 2011-05-04
  • 打赏
  • 举报
回复
这个要修改bootable下的recovery.c文件,让他在擦除了usrdata分区之后,再cache分区中加一个标志文件。我的建议是恢复出厂设置的时候会在cache分区的recovery下有log文件,你开机后可以立马去读这个文件,看做了什么,等android跑起来后cache分区会被清空,所以要在适当的时候做处理。
念茜 2011-05-03
  • 打赏
  • 举报
回复
谁可以帮帮我哇
念茜 2011-05-01
  • 打赏
  • 举报
回复
怎么总是木有人回答我的问题
念茜 2011-04-29
  • 打赏
  • 举报
回复
顶起来 有人懂么
念茜 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 freshui 的回复:]
首次起机, EntropyService应该会挂掉,你看看能否得到EntropyService来判断可以不
[/Quote]

谢谢你,但是我怎么利用它呢?
loadInitialEntropy();
addDeviceSpecificEntropy();
writeEntropy();
scheduleEntropyWriter();
freshui 2011-04-27
  • 打赏
  • 举报
回复
首次起机, EntropyService应该会挂掉,你看看能否得到EntropyService来判断可以不
念茜 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ultrapro 的回复:]
置个标志呗
[/Quote]

我就是在问 什么标识 会在系统重启后 还保留
儿大不由爷 2011-04-27
  • 打赏
  • 举报
回复
置个标志呗

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧