Skip to Content

Какво е S-OFF и имаме ли нужда от него

htc-s-off-android-security.jpg

 

Първо нека да разясним какво значи S-OFF и S-ON. S-OFF е съкратено от "Security OFF", a S-ON е "Security ON". Това са термини, които са специфично свързани с устройствата на HTC и се отнасят до цифровия подпис за проверка на bootloader-a "HBOOT". Новите телефони за масова употреба винаги идват с S-ON заключен bootloader, но има и много редки изключения с S-OFF. HBOOT може да се види и при инжинерните бройки ( ENG ), но до такъв апарата не може да се доберете много лесно.

След като имаме някаква представа какво е значението на тези две понятия, нека да разгледаме по-подробно какво точно ни дава S-OFF. Ако се интересувате повече за S-ON и отключването на bootloader-a през HTCdev.com, може да разгледате тази тема.

 

S-OFF ни позволява:

 
  • Флашване във fastboot на оригинални части от firmware-а като: Trust Zone (tz.img), Resource Power Manager (rpm.img), Advanced Digital Signal Processor (adsp.img), bootloader (hboot.img), Radio Config Data (rcdata.img), Splash Screen, Consumer IR (cir.img).
  • Флашване във fastboot на къстъмизирани части от firmware-а.
  • Ползването на специфични команди във fastboot. Можете да смените CID ( Carrier ID ) или MID ( Model ID ). 
  • Рестартиране на Tampered flag, за не се показва "Relocked" на вашия повторно заключен bootloader.

 

След като знаем какво ни дава S-OFF трябва да се запитаме дали имаме нужда от него? Това определено зависи от нуждите ни и от това дали искаме пълен достъп до всичко или не. Повечето хора, които се престрашат дори да си Root-нат или отключат телефона в голяма част от случаите не знаят какво искат от този Root. Някои знаят, но нямат представа какво да правят след това, а трети знаят всичко и на тях им трябва този привилегирован достъп до всички дялове, за да могат да правят модификации и всякакви други благини, от които да се възползваме. 

 

  • Ако сте от хората, които не знаят как да го направят и не знаят какво да правят след това - значи НЕ ви трябва.
  • Ако сте от тези, които искат да имат администраторски достъп, за да си направят backup на някоя игра, по-добре само си отключете bootloader-a през HTCdev.com.
  • Ако сте разработчик и искате на правите сериозни модификации по телефона, в същото време сте наясно с рисковете, които поемате, значи S-OFF може би е за вас.

 

В общи линии S-OFF не е нужен за един обикновен потребител. За един разработчик или за потребител, който има повече познания в тази област S-OFF дава свобода и в някои случи привилегии, които принципно не са на разположение.

 

Примерно, съдържанието на един ъпдейт на Samsung Galaxy Nexus съдържа:

  • bootloader.img
  • recovery.img
  • GSM radio
  • CDMA radio ( ако е CDMA устройство )
 
Съдържанието на ъпдейтите при HTC е доста по-различно:
  • adsp.img
  • cir.img
  • dzdata_16g.hdr
  • dzdata_16g.img
  • dzdata_32g.hdr
  • dzdata_32g.img
  • dzdata_64g.hdr
  • dzdata_64g.img
  • bootloader.img
  • radio.img
  • recovery.img
  • rpm.img
  • sbl1-1.img
  • sbl1-2.img
  • sbl1-3.img
  • sbl2.img
  • sbl3.img
  • tp.img
  • tz.img
  • ...

 

Тук имаме много повече неща, за които трябва да се притесняваме. Без S-OFF можете да ъпдейтнете ръчно само recovery, boot, system и в редки случаи radio. Всички други дялове са заключени и не можете да ъпдейтнете firmware-а по друг начин, освен чрез верифициран firmware.zip.

 

htc-cid-numbers.png

 

Друг голям проблем е брандирането на телефоните. HTC предлага за всеки регион или държава различен софтуер и това е причината да има толкова много RUU ( ROM Update Utility ). Без значение, че всички тези RUU са с една и съща версия на OS, те имат някои значителни разлики. За да се различават едно от друго те имат специфичен CID ( Carrier ID ) номер, който се проверява от OTA ъпдейтите. Те също така проверяват и MID кода, преди да се актуализира телефона. Ако те не отговарят, значи ъпдейта пропада. Тук идва момента, в който някои от собствениците на HTC телефон трябва да чакат допълнително, за да получат ъпдейт.

За да разберем кой е нашия CID номер, може да ползваме командата "fastboot getvar all".

 

 

 

 

 

 

                          ifelse( is_ship_bootloader(getprop("ro.bootloader")) == "t" ,

                         assert(check_cid(getprop("ro.cid"), "00000000" , "11111111" ,
                         "22222222" , "33333333" , "44444444" , "55555555" , "66666666" ,
                         "77777777" , "88888888" , "99999999" , "HTC__001" , "HTC__E11" ,
                         "HTC__102" , "HTC__203" , "HTC__405" , "HTC__Y13" , "HTC__304" ,
                         "HTC__032" , "HTC__A07" , "HTC__J15" , "HTC__016") == "t"););
                         ifelse( is_ship_bootloader(getprop("ro.bootloader")) == "t" ,
                         assert(check_mid("full", "PN0710000") == "t");,
                         assert(check_mid("simple", "PN0710000") == "t"););
 
 
Както се вижда, "check_cid" съдържа и SuperCID ( 00000000, 11111111, ... ). SuperCID накратко е специален код ( 00000000, 11111111, ... ), който означава, че може да се инсталира софтуер от всеки регион.  Както споменах малко по-рано, един OTA ъпдейт съдържа firmware.zip, който има bootloader, radio, touch panel drivers, trust zone и още доста други неща, но има и "android-info.txt" файл, където са описани CID/MID кодовете. Ако вашият телефон е със S-ON bootloader това няма да ви даде възможност да инсталирате firmware.zip, ако вашия CID номер не е в списъка. Това е голям проблем и тук не говорим за S-ON/S-OFF, а за CID защита и невъзможност да се смени CID кода.
 
Тъй като "android-info.txt" е просто текстови файл, той лесно може да се редактира и ако вашия CID не е в този списък, може спокойно да го добавите. Всичко е лесно, но докато сте със S-ON устройство няма да може да го флашнете, защото firmware.zip файла е "подписан" със специфичен ключ. След като firmware.zip се модифицира този "подпис" се променя и bootloader-а ще отхвърли ъпдейта. На този проблем има решение като смените CID номера на устройството чрез fastboot командата "fastboot oem writecid <cid number>". За целта е нужен S-OFF. Най-добре е да изберете CID номер за WWE ( примерно HTC__001 ).
 
В общи линии, невъзможността да флашнем firmware.zip от WWE OTA ъпдейт принуждава всеки потребител с брандиран телефон или от друг регион да чака ъпдейт с неговия CID и то с месеци. S-OFF решава този проблем и това е една от основните причини да искаме да го имаме. Реално, за обикновения потребител друга полза почти няма.
 
Няма как да пропуснем да кажем, че S-OFF крие и МНОГО рискове. Някои дялове в телефоните, като "radio" примерно, са много деликатни и трябва да сме изключително внимателни, когато работим по тях. Едно грешно движение може да доведе до брикване на телефона. Особено, ако го докараме до положение "Hard Brick", когато оправяне почти няма.

"S-OFF отключен" е доста по-различен от "S-ON отключен". Второто ви дава права само върху system, boot и recovery дяловете. Това е доста различно от S-OFF, но дава някакъв контрол. От друга страна S-OFF ви позволява да сменяте CID/MID номера и да пипате по всички дялове. Това има плюсове има и минуси, ако не знаем какво правим. "S-OFF отключен" ще ви спести чакането на ъпдейти, което е голям проблем при HTC, но ако сте новак има голяма вероятност да си потрошите телефона.

Според производителите на нас такива права не ни трябват, защото колкото по-малко имаме, толкова по-защитени ще бъдем. Защо обаче не налагат такава политика и при компютрите? Там нещата са доста по-различни и свободата е огромна. За телефоните си ги ползваме като "Гост", а компютрите като "Админ"?

 

Допълнителна информация за значението на някои от термините може да намерите тук и тук.

 

Благодарности на #mike1986

Коментари

изключително добра статия ,

изключително добра статия , но излишна за напредналите потребите и разработчиците и като че ли неразбираема за обикновените потребители :)

Доста интересно, браво,

Доста интересно, браво, никога не съм се интересувал от HTC, но научих доста неща.

Информация за автора на тази статия

  Add to circleson Google+  Subscribe to me on YouTube


      Luba6ky

Luba6ky.jpg

  Luba6ky е администратор на сайта и неговите профили в социалните мрежи. Занимава се професионално с мобилни услуги. Интересува се от всичко свързано със Smart устройствата, снима ревюта за тях и пише ръководства във форума.