@ -214,7 +214,7 @@ void main(int argc, char* argv[]) {
unsigned int i , res , opt , datasize , pktcount , adr ;
int bl ; // текущий блок
unsigned char c ;
int fbflag = 0 , tflag = 0 , mflag = 0 , bflag = 0 ;
int fbflag = 0 , tflag = 0 , mflag = 0 , bflag = 0 , cflag = 0 ;
int koff ; // смещение до ANDROID-заголовка
char ptfile [ 100 ] ;
@ -253,7 +253,7 @@ bzero(fileflag,sizeof(fileflag));
memset ( fileflag , 0 , sizeof ( fileflag ) ) ;
# endif
while ( ( opt = getopt ( argc , argv , " hp:ft:ms:b " ) ) ! = - 1 ) {
while ( ( opt = getopt ( argc , argv , " hp:ft:ms:b c " ) ) ! = - 1 ) {
switch ( opt ) {
case ' h ' :
@ -270,6 +270,7 @@ printf("\n Утилита предназначена для аварийной U
- t < file > - в з я т ь т а б л и ц у р а з д е л о в и з у к а з а н н о г о ф а й л а \ n \
- m - п о к а з а т ь т а б л и ц у р а з д е л о в з а г р у з ч и к а и з а в е р ш и т ь р а б о т у \ n \
- s n - у с т а н о в и т ь ф а й л о в ы й ф л а г д л я р а з д е л а n ( к л ю ч м о ж н о у к а з а т ь н е с к о л ь к о р а з ) \ n \
- c - н е п р о и з в о д и т ь а в т о м а т и ч е с к и й п а т ч с т и р а н и я р а з д е л о в \ n \
\ n " ,argv[0]);
return ;
@ -281,6 +282,10 @@ printf("\n Утилита предназначена для аварийной U
fbflag = 1 ;
break ;
case ' c ' :
cflag = 1 ;
break ;
case ' b ' :
fbflag = 1 ;
bflag = 1 ;
@ -414,7 +419,7 @@ for(bl=0;bl<2;bl++) {
return ;
}
// Патч erase-процедуры
// Патч erase-процедуры на предмет игнорировани бедблоков
if ( bflag ) {
res = perasebad ( blk [ bl ] . pbuf , blk [ bl ] . size ) ;
if ( res = = 0 ) {
@ -422,6 +427,12 @@ for(bl=0;bl<2;bl++) {
return ;
}
}
// Удаление процедуры flash_eraseall
if ( ! cflag ) {
res = pv7r2 ( blk [ bl ] . pbuf , blk [ bl ] . size ) + pv7r11 ( blk [ bl ] . pbuf , blk [ bl ] . size ) ;
if ( res ! = 0 ) printf ( " \n * Удалена процедура flash_eraseal по смещению %08x " , res ) ;
}
}