|
本帖最后由 crossbow_z 于 2011-5-18 12:55 编辑 & v( M. I2 f3 b, p/ G& u
$ t* i) |8 ^ ^; t+ ~- A
我一年前不到刷的51的1.4.5 rom
: \$ ?1 f h( }4 N. R; s4 U; \- A3 I" P) {, x1 U4 b% u7 R. _
经分析
a' D" Z- ^0 d" A2 I5 d$ X* p是曾经preware里某程序字符有问题,我装了5 I) L+ x$ T5 Z
而且偏偏还update了Saved Package list" a) o( A' R+ F' h/ V( H
而且preware启动的时候最后会读取Saved Package list
0 \8 L& J2 A+ Y+ x就导致toLowerCase的错误
! Y. S, f" Y" L4 V- w# s并且即使关掉除了preware的所有源之后更新都不能解决4 n- ~1 n4 m. ^' c! G! E6 v, G
我个人认为是要删除掉保存过的Saved Package list. n1 N$ [' n8 a2 ^/ z4 p6 [
但不知的那个东西存在什么路径下 Z3 L( ~, D+ L* }) G: l6 p4 e* j/ X
* R& g5 w8 F r3 k7 N2 v解决过程:: Q; m: q% \, s9 [9 }+ g
6 @4 E1 V0 x* s9 C( ?! k/ I先使用save/restore备份preware(想看备份的程序列表)
" O5 B6 X7 W& K6 H7 L: T在U盘目录下,找到zip压缩包,解压,packageDB是程序列表2 f( g8 A( l2 y' m) V, @
用SQlite打开这个数据库,大概看看,能看到数据库的结构
3 @- d: [# I/ q( T( F4 m" f3 t3 j: _( p可用通过这个查看哪个存储的程序有问题% ?) a. W8 q. H! y4 V* w
我一怒之下,把所有程序列表全删掉了,只留下最后一个,type是array的那个container$ E9 S+ N9 B5 Q
left为1,right改写为2
/ d8 m5 L- `9 K3 n/ g) t8 Q然后再放回到zip) R. C* r9 g( f5 L* p' {$ \
拷贝回saverestore的备份目录,覆盖
, z! w1 w- ?" |% d6 z, d- g# g启动saverestore恢复preware,重启0 ?- `! |6 n. a6 y8 [8 O( e
发现preware依然报错# Q( \; v ^+ ~( _5 G1 d) E
2 M7 X6 j, N4 V$ S, ?5 M
想起来我已经把51book都删掉了,为什么数据库里还有?. e6 ^/ W) Y7 {
难道是没法识别?
- g5 F* ~, l! k3 M3 D/ Iunknown列表里还有一个( S0 l2 d/ [4 |. U( c
找到能找到的所有源
3 N/ P6 h4 r7 W3 V添加3 U; x9 J: q2 g: d
然后都更新一下
" F2 T# _8 p. y* `, `终于可以list everything了- _7 J9 ^+ a1 B. Q- x/ p8 R! H! D# t8 U
saved package list也不会有问题了
/ Y5 K, n2 l7 d0 o这个问题,可以画句号了 |
|