View Single Post
Old 03-03-2010, 06:15 AM   #603
kartu
PRS+ author
kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.kartu ought to be getting tired of karma fortunes by now.
 
Posts: 1,637
Karma: 2446233
Join Date: Dec 2007
Device: Sony PRS-300, 505, 600, 650, 950
Just to elaborate, what was wrong with 1.01. In a startup script there was a change, at the moment needed mostly by Russian/Chinese speaking users:

Code:
/usr/local/sony/bin/mtdmount -t vfat -o utf8 -o shortname=winnt Data /Data 
if [ -f /Data/database/system/PRSPlus/prsp.sh ]
then
	. /Data/database/system/PRSPlus/prsp.sh
fi
/bin/umount /Data
.

What it basically did was, mount internal memory, check if prsp.sh file exists, call it. This kind of call:

. /Data/database/system/PRSPlus/prsp.sh

basically means that content of the prsp.sh file is included in the calling script. (this was "needed" to allow setting variables visible in the caller script. Russians need LD_PRELOAD variable to point to their win1251 -> utf8 translator) Which means one could easily write a broken "custom" script and brick the device (well, 10 resets, or reset and hold bookmark + volume+ buttons still works, no worries ) which has happened quite quickly after release. And by broken, I mean, even having windows style \r\n end of lines was enough.

So there is a nasty choice between opening Pandora's box and not letting big part of the users to have what they'd like to have.

Now, the solution, I am still evaluating it and your ideas/comments are welcome, would probably look like this (written in human words ):

Code:
if exists prsp.sh and does not exist /Data/guard then 
  touch /Data/guard 
  /bin/sh prsp.sh
end
this would call custom prsp.sh only if "guard" file doesn't exist in internal memory. The "guard" file would then be deleted either by the calling script itself or by the PRS+ script. The latter is probably the best way, as if PRS+ script has started, then everything went ok and even if it didn't, there is a way to not let it start - just by connect reader it to PC, when device is booting.

In the end, it would allow anyone to experiment with custom shell script without fearing to have to brick/reflash the reader.

Linux gurus, tell me what you think.

Last edited by kartu; 03-03-2010 at 06:22 AM.
kartu is offline   Reply With Quote