|
本帖最后由 crossbow_z 于 2011-5-18 12:55 编辑
1 l* G( O- t7 X& |. s/ |1 C2 ^! l
我一年前不到刷的51的1.4.5 rom
7 }( `& {0 f! B
H; `+ R8 n5 R经分析
5 |6 B7 b* k/ {! h是曾经preware里某程序字符有问题,我装了
+ ~; H8 J1 B( ], X6 Y( X而且偏偏还update了Saved Package list
0 ~* R" p6 z& {. O/ t- j$ p而且preware启动的时候最后会读取Saved Package list# y: v/ X6 Q; f5 a
就导致toLowerCase的错误
6 H. ^- k) ]9 Q% F并且即使关掉除了preware的所有源之后更新都不能解决' X" b( `2 I8 }5 [, l
我个人认为是要删除掉保存过的Saved Package list2 H: p% S3 S1 b
但不知的那个东西存在什么路径下
" ] s& M& O, Z" @9 o6 e3 T c5 ]) S8 ~' B
解决过程:' l( O+ b; e3 x. P8 X0 b
7 v0 a1 ~, O, A: t' T先使用save/restore备份preware(想看备份的程序列表)6 W2 E6 v+ |8 D5 ~; u: m/ k+ K% o
在U盘目录下,找到zip压缩包,解压,packageDB是程序列表0 P+ G; `3 D; y
用SQlite打开这个数据库,大概看看,能看到数据库的结构/ T/ }+ W3 {/ v+ w, t
可用通过这个查看哪个存储的程序有问题
/ u/ {7 G2 b H% {* ^& Y0 n A; p. @我一怒之下,把所有程序列表全删掉了,只留下最后一个,type是array的那个container7 g, e+ O. T. |& \4 g4 M" c
left为1,right改写为2
' j0 \- w9 D/ n3 }2 f然后再放回到zip
& `! Y) n* ]+ E Z9 }4 N拷贝回saverestore的备份目录,覆盖0 q+ q% L- S! ?1 W. w1 I4 h
启动saverestore恢复preware,重启7 Q# ^' o& l2 x: q# Y; R2 W
发现preware依然报错
! ~9 N3 W5 F6 w" G
. ?* Y1 G6 s2 V- I0 B S2 d1 N, `/ Y想起来我已经把51book都删掉了,为什么数据库里还有?6 P4 f+ V4 D, _& [9 p5 r# \
难道是没法识别?% D, k' ?1 ?* z, Z
unknown列表里还有一个) X) D4 B9 u( y" Z8 _. a
找到能找到的所有源 ]3 A4 w" j4 q- E7 b' b
添加
% G( K" |* g1 y然后都更新一下
/ K& J0 `: L& h8 O" d! s终于可以list everything了
9 n# y8 H J% Fsaved package list也不会有问题了5 B' V) D$ ^* ?7 V
这个问题,可以画句号了 |
|