|
本帖最后由 crossbow_z 于 2011-5-18 12:55 编辑
5 j; H5 w1 R- Z& N) W2 n
0 \$ R, @; R: I$ Y& r我一年前不到刷的51的1.4.5 rom- P4 `- a# N/ O3 y
. q" R5 S8 e, ?经分析
3 d. c" i0 D7 a. c; Z是曾经preware里某程序字符有问题,我装了
6 b% s/ x# m u8 `9 ^1 x% @4 L而且偏偏还update了Saved Package list
3 g& S3 U5 l! m# I/ c8 X1 V8 M) r而且preware启动的时候最后会读取Saved Package list
% Z* O1 g) d# Q就导致toLowerCase的错误
% e" R7 R3 S3 a# |# v并且即使关掉除了preware的所有源之后更新都不能解决5 M8 a. }' o- }+ _5 N% o4 B/ t, f
我个人认为是要删除掉保存过的Saved Package list
4 U6 P$ Y0 i# H但不知的那个东西存在什么路径下
. q$ M- z5 p0 n' V/ p4 j7 Y z7 A% ~) _, J' A! T G# x% y
解决过程:0 n! {6 L+ [( t( d5 N
3 a% S5 S$ g9 Y- q* U% h
先使用save/restore备份preware(想看备份的程序列表)
5 a$ X6 U) B! D3 S8 j7 s# ]" g8 s在U盘目录下,找到zip压缩包,解压,packageDB是程序列表
' b5 y" a# b6 I: ]; y3 n1 X3 V& m/ Q用SQlite打开这个数据库,大概看看,能看到数据库的结构( Y( j! `+ L, e$ o
可用通过这个查看哪个存储的程序有问题
- T4 l5 f# s g. q我一怒之下,把所有程序列表全删掉了,只留下最后一个,type是array的那个container: x: d3 J- b$ ^. D" X
left为1,right改写为2
0 e. e3 g6 i) d0 N然后再放回到zip7 W p( D: Q# [& ^" _
拷贝回saverestore的备份目录,覆盖
3 O" m2 w6 y- B8 O启动saverestore恢复preware,重启
$ p9 \* u# Y! {3 v; C/ u0 L发现preware依然报错
5 J/ F" I1 P, |5 i
- i7 k3 r4 p" z3 F/ i7 W想起来我已经把51book都删掉了,为什么数据库里还有?9 }; Q0 J z" d% n1 B. D
难道是没法识别?3 ]9 O3 X8 {3 F! Q& a( E8 N
unknown列表里还有一个$ w% G5 E& l8 ~) K) z R1 D
找到能找到的所有源0 ~ p0 q+ f: x& o
添加
8 J5 U2 D* ^9 c- T3 Q然后都更新一下$ Y0 k7 {) `- s/ ?
终于可以list everything了# M5 S C, e$ r
saved package list也不会有问题了
8 L# o: z" z1 P% q4 Z. f8 H" ^这个问题,可以画句号了 |
|