ãã¡ã€ã«ã·ã¹ãã ãå«ãããŒãã£ã·ã§ã³ã®ã€ã¡ãŒãžæ§é ã ããŒã2
ããŒã1ã§å
¬éãéå§ã
ãŸãã3.2._sparsechunkãã¡ã€ã«
ãªããªã
ã¹ããŒã¹ãã¡ã€ã«ã¯å§çž®ããããœãŒã¹ããŒã¿ãã¡ã€ã«ã§ãããéåžžã«å€§ãããªãå Žåãããããã®å€æŽã¯
_sparsechunkã®ãããªãã¡ã€ã«ãšåŒã°ããŸããå¢çç·ïŒãã¡ã€ã«åæã¢ã«ãŽãªãºã ã«ããïŒã
ãã®ã¢ããªã³ã䜿çšãããšãå§çž®ããã
ã¹ããŒã¹ãã¡ã€ã«ã䜿çšããŠãOTAçµç±ã§æŽæ°ãéä¿¡ãããã
fastbootã¢ãŒãã§ããŠã³ããŒããããã§ããŸãã
3.2.1 _sparsechunkãã¡ã€ã«ã®æ§é
æ§é äžã
_sparsechunkã¿ã€ãã®åãã¡ã€ã«ã¯éåžžã®
ã¹ããŒã¹ãã¡ã€ã«ã§ãããããŒãã£ã·ã§ã³ã€ã¡ãŒãžãªã©ãå
¥åãã¡ã€ã«ã®ãã¹ãŠã§ã¯ãªãäžéšã®ã¿ãå«ãŸããŠããŸãã å§çž®ç¶æ
ã§ã®ãã®éšåã®ãµã€ãºãã€ãŸã
çãã¥ãŒã§ã¯ãäºåã«å®çŸ©ãããå€ãŸãã¯å¢çãè¶
ããŠã¯ãªããŸããã çŸåšã
_sparsechunkãã¡ã€ã«ã®ãµã€ãºã®ãå¢çãã¯éåžž256MBïŒ
268,435,456ãã€ãïŒã§ãã
ã¹ããŒã¹ãã¡ã€ã«ã®æ¬¡ã®éšåã¯ã次ã®
_sparsechunkãã¡ã€ã«ãªã©ã«å«ãŸããŸãã
å€éšã§ã¯ããããã®ãã¡ã€ã«ã¯ååã®ã€ã³ããã¯ã¹ã«ãã£ãŠåºå¥ããããã³ãŒãäžã®åŠçã®é åºã決å®ããŸãã ã€ã³ããã¯ã¹ã¯ãåã«åºæ°ã«ããããšããããŒã¹ãžã®å
¥åãã¡ã€ã«ã®ãªãã»ãããšããŠè¡šãããšãã§ããŸãã
T.O. æåã«ãããŒãã£ã·ã§ã³ã€ã¡ãŒãžã
ã¹ããŒã¹ãã¡ã€ã«ã«ãšã³ã³ãŒãããã次ã«ãããæ¢ã«
_sparsechunkãã¡ã€ã«ã®ã»ããã«å€æïŒã«ããïŒãããŸãã
_sparsechunkãã¡ã€ã«ãäœæããããã»ã¹ã¯ã次ã®ã¢ã«ãŽãªãºã ã§èª¬æã§ããŸãã
- å®æããã¹ããŒã¹ãã¡ã€ã«ãã¹ãã£ã³ãããRawããã³Fillã¿ã€ãã®é£ç¶ããŠé
眮ããããã¹ãŠã®ãã£ã³ã¯ããããŒã¿ããšåŒã°ããã°ã«ãŒãã«åéããããã®é·ãã¯åžžã«ç£èŠãããŸãã ãã®æé ã¯ãã°ã«ãŒããµã€ãºãå¢çã«éãããŸã§å®è¡ãããŸããå¢çã®å€ã¯äºåã«æå®ãããŠããããã¡ã€ã«ãåå²ããããã»ã¹ã説æãããšãã«äžèšã®èŠä»¶ã«ãã£ãŠæ±ºå®ãããŸãã
- 次ã®ããŒã¹ãè¿œå ãããšå¢çãè¶
ããå Žåãããã¯ã°ã«ãŒãã«å«ãŸããããã§ã«ã°ã«ãŒãåãããããŒã¹ããå¥ã®ãã¡ã€ã«ã圢æãããŸãããã®ãã¡ã€ã«ã«ã¯ããçµäºããšåŒã°ããDontCareã¿ã€ãã®ããŒã¹ãè¿œå ãã ãåºåãã¡ã€ã«ã®çµãããŸã§ã®ããŒã¿ãªãã»ãããChunk_Sizeãã£ãŒã«ãã«ç€ºãããŸã ãã®ãã¡ã€ã«ã®ååã¯_sparsechunk.1ã§ãã
- ã¹ããŒã¹ãã¡ã€ã«ã¯é
ç®1ã2ã®æé ã«åŸã£ãŠåŒãç¶ãæ€æ»ããã次ã®_sparsechunkãã¡ã€ã«ã圢æãããŸãã圢æãããåã«ã®ã¿ããåæããšåŒã°ããDontCareã¿ã€ãã®ã¹ããŒã¹ããŒã¹ãããŒã¿ãªãã»ãããChunk_Sizeãã£ãŒã«ãã«ç€ºããã ã¹ããŒã¹ãã£ã³ã¯ã®ã°ã«ãŒãã«è¿œå ãããŸããã®ãã¡ã€ã«ã«å«ãŸãããå
ã®ç»åã®å
é ããã æåŸã«ãäžèšã®ã¢ã«ãŽãªãºã ã«ãã£ãŠåœ¢æããããæçµãããŒã¹ãè¿œå ãããŸãã
- ããã¯ã ã¹ããŒã¹ãã¡ã€ã«ã®çµããã«éãããŸã§ç¶ããŸãã
ãããã£ãŠãå
_sparsechunkãã¡ã€ã«ã¯ã3ã€ã®éšåã§æ§æã§ããŸãã
- OFFSET_TO_START- ãåæãããŒã¹ãå«ãŸããŸãã
- INFO- ãããŒã¿ããå«ãéšåã
- OFFSET_TO_END- ãæçµãããŒã¹ãå«ãŸããŸãã
OFFSET_TO_STARTéšåã¯ãã¹ããŒã¹åœ¢åŒã®æ
å ±ãå«ããããŒã¿ãéšåã®å
é ãžã®å
¥åãã¡ã€ã«å
ã®ãªãã»ãããè¡šããŸãã
INFOéšåã«ã¯ã
Fillã
Rawãªã©ã®
çãªéšåã§æ§æãããç圢åŒã®æ
å ±ã®ã¿ãå«ãŸããŸãã
OFFSET_TO_ENDéšåã¯ãåºåãã¡ã€ã«ã®çµãããŸã§ã®ãªãã»ããã§ãã ãªãã»ããããŒãã®å Žåãã€ãŸã æ
å ±ã°ã«ãŒããå«ã
åé¡ã®
_sparsechunkãã¡ã€ã«ã¯
_sparsechunkãã¡ã€ã«ã®ã»ããã®æåŸã§ããã
OFFSET_TO_ENDéšå
ã¯å®å
šã«ååšããŸããã
3.2.2 _sparsechunkãã¡ã€ã«ã®äœ¿çš
_sparsechunkãã¡ã€ã«ã®æäœäŸãšããŠãsystem.img_sparsechunk.0ãã¡ã€ã«ã»ãããsystem.img_sparsechunk.4ãã¡ãŒã ãŠã§ã¢ãšããŠMoto X
[5]ãšããŠäœ¿çšããŠã
_sparsechunkãã¡ã€ã«ã
ã¹ããŒã¹ãã¡ã€ã«ã«ããŸãã¯ãã®éã«å€æããããšãæ€èšããŠã¿ãŸãããã
3.2.2.1 _sparsechunkãã¡ã€ã«ã®ãªã¹ããåäžã®ãã¡ã€ã«ã«å€æãã
äžèšã§ã
_sparsechunkãã¡ã€ã«ã«å€æãããšãã«ãå
ã®
ã¹ããŒã¹ãã¡ã€ã«ã®å
容ãæ
å ±éšåã«åçŽã«åå²ãããå¿
èŠã«å¿ããŠè¿œå ã®æçã«å€ããããšã瀺ããŸããã ãããã£ãŠãå
ã®ã¹ããŒã¹ãã¡ã€ã«ã埩å
ããã«ã¯ãå
_sparsechunkãã¡ã€ã«ããã©ãããŒããŒã¹ãããã°ãããç Žæ£ãããã¹ãŠã®æ
å ±éšåãåçŽã«è¿œå ããŠã
ã¹ããŒã¹ããŒã¹ã®ç·æ°ãèšç®ããå¿
èŠããããŸãã
- 16é²ãšãã£ã¿ãŒã§system.img_sparsechunk.0ãéããŸãã

å³8 sparsechunk_0
ã¢ãã¬ã¹0x0000ããã¢ãã¬ã¹0x001BãŸã§ã ã¹ããŒã¹ãã¡ã€ã«ã®ããããŒãé
眮ãããŠããããšãããããŸãã ããã«ãã¢ãã¬ã¹0x001CãããããããŒ0x100C ïŒã¢ãã¬ã¹0x0024 ïŒãšãšãã«ããŒã¿é åã®é·ããæã€ã¿ã€ã0xCAC1ã§å§ãŸãæ
å ±ã°ã«ãŒããç¶ããŸãã ãããã£ãŠã次ã®ããŒã¹ã¯ã¢ãã¬ã¹ããå§ãŸããŸãã
0001 + 0100 = 01028
ãã®ã¢ãã¬ã¹ã«ãããã®ãèŠãŠã¿ãŸãããïŒ

å³9 ã ããŒã¹2
ã¢ãã¬ã¹0x1028ã«ã¯ãé·ãã0x1000 ïŒã¢ãã¬ã¹0x1030 ïŒã®ã¿ã€ã0xCAC2ããããŸãã 次ã«ïŒã¢ãã¬ã¹0x1038 ïŒåã³ã¿ã€ã0xCAC1ãªã©ã®æç
ãã®ãã¡ã€ã«ã®æåŸã®éšåã¯0x0FFFF524ã«ãããã¿ã€ãã¯0xCAC3ã§ãã ããã¯ã OFFSET_TO_ENDã¿ã€ãã®æçã§ãã ã 0x067AD4ã枬å®ããŸã ã äžèŠãªãã®ãšããŠåé€ããŸãã

å³10 ã æåã®_sparsechunk_end
ãããã£ãŠãæåã®_sparsechunkãã¡ã€ã«ããã ã¹ããŒã¹ãã¡ã€ã«ã®ããããŒãšãããŒã¿ãã®ã¿ãæ®ããŸããã ãŸãããããŒã¿ãã®ããŒã¹ã®æ°-0x005D ïŒ 0x0014ã®ãã£ãŒã«ããåç
§ ïŒãèŠããŠãããŸãããããããã¯ã¿ã€ãOFFSET_TO_ENDã®ããŒã¹ãšäžç·ãªã®ã§ãå®éã«ã¯ãååŸãããã ãã§ã
0x005D - 00001 = 0005
- 次ã®_sparsechunkãã¡ã€ã«ã16é²ãšãã£ã¿ãŒã§éããŸã-system.img_sparsechunk.1 ïŒ

å³11aã2çªç®ã®ããŒã¹ã®å§ãŸã

å³11bã2çªç®ã®ããŒã¹ã®çµãã
ã³ã³ãã³ããã³ããŒããããããŒãã¿ã€ã0xCAC3ã®æåãšæåŸã®éšåãã€ãŸãã¢ãã¬ã¹0x0028ããã¢ãã¬ã¹0xFBFC46Cãç Žæ£ã ããããåã®éšåã®æåŸã®ã¿ã€ã0xCAC3ã®æåŸã«åé€ãããéšåïŒã¢ãã¬ã¹0xFFFF524 ïŒã®å Žæã«è¿œå ããŸãã ããã¯æ¬¡ã®ããã«ãªããŸãã

å³12 ã 2ã€ã®éšå
ããªãã¡ ãã®ãããªããã€ãããããŸãã
- ã¹ããŒã¹ããããŒ
- æåã®_sparsechunkãã¡ã€ã«ã®ãããŒã¿ãã
- 2çªç®ã®_sparsechunkãã¡ã€ã«ã®ãããŒã¿ãã

å³13 ã æãç³ãŸãããã¡ã€ã«ã®çµãã
ããŒã¹ã®åèšæ°ãåèšããããšãå¿ããªãã§ãã ããã è¿œå ãããããŒã¿ãã«ããŒã¹ã®æ°ãè¿œå ããŸã
0x005 + (0x0050 - 00002) = 0x00A
- æåŸãé€ããæ®ãã®ãã¹ãŠã®_sparsechunkãã¡ã€ã«ã«å¯ŸããŠæé 2ãå®è¡ãç¶ããŸãã æ°ãããã¡ã€ã«ãããããåŠçããåŸããããŒã¿ãèªäœãè¿œå ããããããããã€ãã倧ãããªããŸãã

å³14 2çªç®ã®ãã¡ã€ã«ãè¿œå ãã
ãããŠãç§ãã¡ã¯ããŒã¹ã®æ°ãèŠçŽãç¶ããŸã... - æåŸã®_sparsechunkãã¡ã€ã«ãããã€ãã«è¿œå ããã«ã¯ã ã¹ããã 2ã®æé ã«åŸã£ãŠãããããŒãšã¿ã€ã0xCAC3ã®æåã®éšåã®ã¿ãããããããŸãã ååŸãããã®ã¯æ¬¡ã®ãšããã§ãã

å³15 çµæ
ãã®ãã¡ã€ã«ã®ãµã€ãºã¯0x4173FBD4 ïŒ 1098120148ãŸãã¯çŽ1047MBïŒã§ãããããŒã¹ã®ç·æ°ã¯0x01FB ïŒ 507 ïŒã§ããã 0x0014 ïŒ Total_ChunksããããŒã®ããŒã¹ã®æ°ããã£ãŒã«ãïŒã«æžã蟌ã¿ãŸãã åèšæ°ããååŸãã8åã¯ãã¿ã€ã0xCAC3ã®åã§ãã_sparsechunkãã¡ã€ã«ã®ããŒã0ããã®1åãããŒã1ã3ããã®2åãæåŸã®ïŒ4çªç®ïŒéšåããã®1åã§ãã

å³16 ã ãã¹ãŠã®_sparsechunkãã¡ã€ã«ã®æçã®ç·æ°ãèšé²ããŸã
å¿
èŠã«å¿ããŠãããããŒã®Image_Checksumãã£ãŒã«ãïŒã¢ãã¬ã¹0x0018ïŒã«ããã¡ã€ã«å
šäœã«å¯ŸããŠCrc32ã¢ã«ãŽãªãºã ã«ãã£ãŠèšç®ããããã§ãã¯ãµã ãè¿œå ããŸãã èŠåºã+ãã¹ãŠã®éšåã éåžžããã®ãã£ãŒã«ãã¯åããããããŒãã®ãŸãŸã§ãã - çµæã®ã¹ããŒã¹ãã¡ã€ã«ãã system.sparseãªã©ã®ååã§ä¿åããŸãã
ããã§ãæçãã
ã¹ããŒã¹ãã¡ã€ã«ã®ã¢ã»ã³ããªãå®äºããŸããã
3.2.2.2ã¹ããŒã¹ãã¡ã€ã«ãäžé£ã®_sparsechunkãã¡ã€ã«ã«å€æããããããŒãã«åå²ïŒåå²ïŒããïŒãã£ã³ã¯ïŒ
次ã«ãäœæãã
ã¹ããŒã¹ãã¡ã€ã«ã
_sparsechunkãã¡ã€ã«ã«ã«ããããŠã¿ãŸãããã å¢çã®å€ãšããŠã256MBïŒ0x10000000ïŒãåããŸãã
- system.sparseãã¡ã€ã«ãéãã以äžã§èª¬æãããã¹ãŠã®ã¢ã¯ã·ã§ã³ã16é²ãšãã£ã¿ãŒã§å®è¡ããŸãã

å³17 system.sparseãã¡ã€ã«
ãããŒã¿ãã®ã¿ãå«ãåå¥ã®_sparsechunkéšåã«åå²ããŸãã - æåã®_sparsechunkãã¡ã€ã«ãäœæããŸãã ãããè¡ãã«ã¯ãçŸåšã®ããŒã«ãŒäœçœ®ãããªãã»ãã0x10000000ã«ç§»åããŸãïŒæåã®ãã¡ã€ã«ã®å Žåã¯0x0000ã§ãïŒã å°æ¥ã®_sparsechunkãã¡ã€ã«ã®æ倧ãµã€ãºã«å°éããŸãããã æåã®ãã¡ã€ã«ã®å Žåãããã¯ã¢ãã¬ã¹0x10000000ã«ãªããŸãã

å³18 ã _Sparsechunkãã¡ã€ã«ã®å¢çç·
ãããŠãããããã¿ã€ãã®ããŒã¹ã®å§ãŸããäžæ¹åããèŠå§ããŸãã 0xCAC1ãŸãã¯0xCAC2ã³ãŒãã ã¿ã€ã0xCAC1ã®æãè¿ãéšåã¯0xFFFF524ã«ãããŸãã

å³19 _Sparsechunk filesã»ã¯ã·ã§ã³ã®å¢ç
ãå¢çãã®å¯žæ³ã«ãé©åãããæåŸã®ããŒã¹ãèŠã€ããããã«ããã®ããŒã¹ã®ãµã€ãº+ããããŒã®ãµã€ãºããèŠã€ãã£ããªãã»ããã«è¿œå ããŠã次ã®ããŒã¹ã®å§ãŸããèŠã€ããŸãã
0xFFFF524 + 0x41D2000 + 0x000C = 0x141D1530
ãªããªã 次ã®ããŒã¹ã®ãªãã»ããããå¢çãã暪åããšã _sparsechunkãã¡ã€ã«ã®ã»ã¯ã·ã§ã³ãã€ã³ããèŠã€ãããŸããã system.sparseãã¡ã€ã«ã®ã³ãŒãã0x00000000ãã0xFFFF524ã®ãã¡ã€ã«ã«ä¿åããŸãïŒäŸïŒ system_new_sparsechunk_0.imgïŒ ã - ã¹ããã2ãç¹°ãè¿ããŸããçŸåšã®ããŒã«ãŒã®äœçœ®ã«ã€ããŠãåã®ã¹ãããã§èŠã€ãã£ãæåŸã®ããŒã¹ã®å
é ãã€ãŸã 0xFFFF524 ã çŸåšäœçœ®ãããªãã»ãã0x10000000ã«ã¹ãããããŸãã

å³20 2çªç®ã®ãã¡ã€ã«ã®å¢çç·
æ倧å€ãã€ãŸã 次ã®_sparsechunkã®éå§ã¢ãã¬ã¹ã¯ã éšå0x1FFFF524ã§ãã äžåŽã«æãè¿ãéšåãããªãã¡ _sparsechunkãã¡ã€ã«ã®äžéšã®æå³ãããããŒãã£ã·ã§ã³å¢çïŒ

å³21 _sparsechunkãã¡ã€ã«ã®2çªç®ã®ã»ã¯ã·ã§ã³å¢ç
æåŸã®ããŒã¹ãæ£ããæ€åºããããã©ãããã€ãŸã 次ã®ããŒã¹ãžã®ãªãã»ããã決å®ããŸãã
0x1FBFB968 + 0x01897000 + 0x000C = 0x21492968
ãªããªã ã·ããã¯æ¬¡ã®ããŒãã®éå§ã®æšå®ã·ãããè¶
ããããã _sparsechunkããŒãã®ã»ã¯ã·ã§ã³ãã€ã³ããæ£ããèŠã€ããŸããã system.sparseãã¡ã€ã«ã®æ¬¡ã®ã³ãŒãã0xFFFF524ãã0x1FBFB968ã«ä¿åããŸãïŒäŸïŒ system_new_sparsechunk_1.imgïŒ ã - system.sparseãã¡ã€ã«ã®çµãããŸã§æé 3ãç¹°ãè¿ããŸãã ãã®çµæã次ã®ãã¡ã€ã«ã®ã»ãããåŸãããŸããã
=========================================================================== | â | | | | | | / | | | | | | |=====|===================|========|============|============|==============| | 1 | new_sparsechunk_0 | 256 | 0x00000000 | 0x0FFFF523 | 0x005C ( 92) | | 2 | new_sparsechunk_1 | 252 | 0x0FFFF524 | 0x1FBFB967 | 0x004E ( 78) | | 3 | new_sparsechunk_2 | 242 | 0x1FBFB968 | 0x2EE61403 | 0x00C2 (194) | | 4 | new_sparsechunk_3 | 235 | 0x2EE61404 | 0x3D92DA5B | 0x0074 (116) | | 5 | new_sparsechunk_4 | 62 | 0x3D92DA5C | 0x4173FBD3 | 0x001B ( 27) | |============================================================|==============| | : | 0x01FB (507) | ===========================================================================
- æåã®éšåãé€ãå_sparsechunkéšåã«äœæããŸãã 圌ã¯ããããã«ããã ã¹ããŒã¹ãã¡ã€ã«ã®ããããŒã ãããè¡ãã«ã¯ã system.sparseããããããŒãã³ããŒãããã¡ã€ã«ã®å
é ã®åéšåã«è²Œãä»ããŸãã åã®è¡šã®ããŒã¿ã䜿çšããŠãã åæ° ãåã®å€ãåãã¡ã€ã«ã®ã¢ãã¬ã¹0x0014ã® Total_Chunksãã£ãŒã«ãã«å
¥åããŸãã
ããã§ã
_sparsechunkã®åæããã»ã¹
ã¯éšåçã«å®äºããŸããã
PSãªãã»ããã«ããé·ç§»ãå¿
èŠãªããŒã¹ã®æ€çŽ¢ããã¡ã€ã«ãµã€ãºã®èšç®ãªã©ã䌎ãããããã¹ãŠã®ããã©ãŒãã ã¹ããŒã¹ãã¡ã€ã«ãš_sparsechunkãã¡ã€ã«ã®åŠçã«é¢ããäœæ¥ãå®äºããããã«å¿
èŠãªæé ãMUéçºè
ã«ç€ºãããã ãã«èª¬æããŸããã ç§èªèº«ã¯ãããããŸãã ç§ãæžããã³ã³ãã¥ãŒã¿ãŒãšã¢ããªã±ãŒã·ã§ã³ããããŸãã
äžèšã®è³æãç 究ããåžæè
ã¯ãèªåã®å¥œã¿ãè²ã«å¿çšããããšãã§ããŸãã
4. datãã¡ã€ã«ãäœæãã
datãã¡ã€ã«ã¯ãããŒãã£ã·ã§ã³ã€ã¡ãŒãžã®å§çž®ã«ããã次ã®ã¹ãããã§ãã
ã¹ããŒã¹ãã¡ã€ã«ãšã¯ç°ãªããæ
å ±éšåã®ã¿ãå«ãŸããŠããŸãã ãŸãããœãŒã¹ãã¡ã€ã«ã®ã¢ã»ã³ããªã確å®ã«ããããã«ã
transfer_listãšãããã¡ã€ã«
ãäœæãããŸãã
ãã®å ŽåããœãŒã¹ãã¡ã€ã«ã¯æçšãªæ
å ±ãå«ãéšåã«åå²ãããŸãã æ
å ±ãããã¯ãããã³ã空ã®ããããã¯ãã€ãŸã ãŒããå«ãã 次ã«ãæ
å ±ãæã€ãã¹ãŠã®éšåã
new_dataãšããååã®åºåãã¡ã€ã«ã«è¡ã§ã³ããŒããããœãŒã¹ãã¡ã€ã«ã§ã®é
眮ãšãããã®éšåã®ãµã€ãºã«é¢ããæ
å ±ã
transfer_listãã¡ã€ã«ã«èšé²ãããŸãã
ãããã£ãŠãæçµæ
å ±ãã¡ã€ã«ïŒ
new_data ïŒã«ã¯ãŒãã®ãããã¯ã¯å«ãŸããŸããã ãçž®å°ããå
ã®ãµã€ãºãããã¯ããã«å°ãããªããŸãã
ãã®ãããªããŒã¿å€æã®å¯èœæ§ãããã³ããã«å¿ããŠ
transfer_listãã¡ã€ã«åœ¢åŒã¯ãæéã®çµéãšãšãã«ããã€ãã®å€æŽãåããŠããŸãã ãã®ãã¡ã€ã«ã«ã¯ããã€ãã®ããŒãžã§ã³ããããŸãã
æåã
new_dataãã¡ã€ã«ã«ã¯ãã¹ãŠã®æ
å ±ãããã¯ãå«ãŸãã
transfer_listã«ã¯ã解åãã«ã®ã¿å¿
èŠãªæ
å ±ãå«ãŸ
ããŠããŸããã å®å
šãªãœãŒã¹ãã¡ã€ã«ã埩å
ããŸãã ããŒãžã§ã³5.0.0以éãAndroid OSã§ãã¡ã€ã«ãå§çž®ããããã«äœ¿çšãããããŒãžã§ã³1ã§ããã
次ã«ãåçŽãªå§çž®ã«å ããŠã
datããã³
transfer_list-ãã¡ã€ã«ã®æ©èœã«ãããããããã¡ã€ã«ãäœæããŠãœãŒã¹ãã¡ã€ã«ã®äžéšã®ã¿ãããšãã°ãªã«ããªçšã®ãããã眮ãæããæ©èœãè¿œå ããããããããŒãžã§ã³5.1.0以éãAndroid OSã§äœ¿çšãããããŒãžã§ã³2ãå°å
¥ãããŸããã ããã«ãããå
ã®ç»åãããã«å§çž®ãããŸããã ãããã§ã¯å€æŽã®ã¿ãéä¿¡ãããŸãã
Android 6.0ã§ã¯ãã»ãã¥ãªãã£ã·ã¹ãã ãžã®ã¢ãããŒãã倧ããå€ãããæå·åãåºã䜿çšãããããã«å¿ããŠã
stashã³ãã³ãã䜿çšããŠå³åº§ã«åŸ©å·åã§ãã
transfer_listãã¡ã€ã«ã®ããŒãžã§ã³3ãèªçããŸããã
4.1.Datãã¡ã€ã«ã®æ§é
datãã¡ã€ã«ïŒ.datïŒãžã®å€æåŸã®RAW圢åŒãã¡ã€ã«ïŒ.imgïŒã®ç»åã¯ã次ã®ãã¡ã€ã«ã®ã»ããã§ãã
- transfer_listãã¡ã€ã«ã ãã®ãã¡ã€ã«ã«ã¯ãæ
å ±éšåã®é
眮ã®èª¬æãšããããã®å埩ãšæ€èšŒã®ããã®ã³ãã³ããå«ãŸããŠããŸãã
- new_dataãã¡ã€ã«ã ããã«ã¯ããœãŒã¹ãã¡ã€ã«ã®æ
å ±éšåã®ã¿ãå«ãŸããŠãããç¶ç¶çã«é
眮ãããŠããŸãã ééãæŽåãªã;
- patch_dataãã¡ã€ã«ã ãã®ãã¡ã€ã«ã«ã¯ããã®äžã«ç¶ç¶çã«é
眮ãããŠãããœãŒã¹ãã¡ã€ã«ã®æ
å ±éšåã眮ãæããéšåã®ã¿ãå«ãŸããŠããŸãã ééãæŽåãªãã
RAWãœãŒã¹ãã¡ã€ã«ã§å®è¡ãããå€æã®ã¿ã€ãã«å¿ããŠããã¡ã€ã«ã»ããã®æ§æã¯å€æŽãããå¯èœæ§ããããŸããã
new_dataãã¡ã€ã«ãš
patch_dataãã¡ã€ã«ã®äž¡æ¹ãäžç·ã«äœ¿çšããããšã
åå¥ã«äœ¿çšããããšãã§ããŸããã
transfer_listãã¡ã€ã«ã¯åžžã«ååšããå¿
èŠããããŸãã
å€æãåã«ã空ã®ããããã¯ãåé€ããããšã§æ§æãããŠããå Žåã
transfer_listãã¡ã€ã«ã«å ããŠã
new_dataãã¡ã€ã«ã®ã¿ãã»ããã«å«ãŸããŸãïŒäŸ
[7]ïŒ ã
å€æãããããé©çšããå Žåãã€ãŸã äžéšã®ãããã¯ãä»ã®ãããã¯ã«çœ®ãæãããããšãã»ããã«ã¯
patch_dataãã¡ã€ã«ã®ã¿ãååšããŸãïŒäŸïŒ
[8]ïŒ ã
å€æãã空ã®ããããã¯ã®åé€ãšãããã®é©çšã®äž¡æ¹ã§æ§æãããŠããå Žåãã€ãŸã äžéšã®ãããã¯ãä»ã®ãããã¯ã«çœ®ãæããããå Žåãã»ããã«ã¯
new_dataãã¡ã€ã«ãš
patch_dataãã¡ã€ã«ã®äž¡æ¹ãå«ãŸããŸãïŒäŸ
[6]ïŒ ã
å
dat-ãã¡ã€ã«ã®æ§é ããã詳现ã«æ€èšããåžžã«äœ¿çšããã
transfer_list-ãã¡ã€ã«ããå§ããŸãã ãœãŒã¹ãã¡ã€ã«ã§å®è¡ãããå€æãšãããã«å¿ããŠããœãŒã¹ãã¡ã€ã«ããååŸãããããã«å®è¡ããå¿
èŠãããã¢ã¯ã·ã§ã³ã説æããã®ã¯ã圌ã§ãã ãå埩ããšã¯èšããŸããã§ãã å³å¯ã«èšãã°ãå€æãåãããœãŒã¹ãã¡ã€ã«ã¯ãåŠçåŸã«ååŸãããæçµãã¡ã€ã«ãšäžèŽããªãå ŽåããããŸãã ããã¯ãããšãã°ãããããé©çšããåŸã«çºçããå¯èœæ§ããããŸãã ãœãŒã¹ãã¡ã€ã«ã«å€æŽãå ããŸãã
4.1.1 transfer_listãã¡ã€ã«ã®æ§é
ãã¡ã€ã«
transfer_listã¯4è¡ä»¥äžã®è¡ã®ã»ããã§ãåè¡ã¯1ã€ã®ããŒã¿ãã£ãŒã«ããèšè¿°ãã次ã®æ§é ãæã¡ãŸãã
==================================================== | â | | | | / | | | | | | | |=====|=================|============================| | 1 | Version | | | 2 | Size New Data | new_dat | | 3 | Stash Entries | stash- | | 4 | Stash Max Block | . stash- | | 5 | Commands | | ====================================================
ããŒãžã§ã³ãã£ãŒã«ãæååã¯ããã¡ã€ã«
transfer_listã®ããŒãžã§ã³ã説æãã1ã3ã®å€ããšãããšãã§ããŸãããã¡ã€ã«ããŒãžã§ã³ã¯æ©èœãç°ãªãããã¡ã€ã«èªäœã®è¡æ°ã«åœ±é¿ããŸãã ããŒãžã§ã³1ã¯ãAndroidããŒãžã§ã³5.0以éã§äœæããããã¡ã€ã«ã«äœ¿çšãããŸãã Android 5.1.0以éãããŒãžã§ã³2ã䜿çšãããŠããŸãã Android 6.0.1以éãããŒãžã§ã³3ã䜿çšãããŠããŸãã
ããŒãžã§ã³1ã«ã¯ã3è¡ç®ãš4è¡ç®ã«èšèŒãããŠããå€ã¯å«ãŸããŠããŸããããå°ãªããšã2ã€ã®ã³ãã³ããå«ãŸããŠããå¿
èŠããããŸãã ãããã£ãŠã
transfer_listãã¡ã€ã«ã®é·ãã¯å°ãªããšã4è¡ã§ãã
- ããŒãžã§ã³
- æ°ããããŒã¿ã®ãµã€ãºèšå®
- ã³ãã³ã1 ;
- ã³ãã³ã2 ã
ããŒãžã§ã³2ããã³3ã¯ãã§ã«
stashã³ãã³ããå®è¡ã§ããããã
transfer_listãã¡ã€ã«ã«ã¯å°ãªããšã6è¡ãå«ãŸããŸãã
- ããŒãžã§ã³
- æ°ããããŒã¿ã®ãµã€ãºèšå®
- ã¹ã¿ãã·ã¥ãšã³ããª
- ã¹ã¿ãã·ã¥ããã¯ã¹ããã㯠;
- ã³ãã³ã1 ;
- ã³ãã³ã2 ã
Size New Dataè¡ãã£ãŒã«ãã¯ãæ
å ±ãã¡ã€ã«ã®ã¿ãå«ãåºåãã¡ã€ã«
new_datã®ãããã¯åäœã®ãµã€ãºã瀺ããŸãã 移åãããããŒã¿ã®ãããã¯æ°ã ããã©ã«ãã§ã¯ããããã¯ãµã€ãºã¯4096ãã€ãã§ãã
Stash Entriesè¡ãã£ãŒã«ãã¯ã
stashã³ãã³ãã§åæã«äœ¿çšããããœãŒã¹ãã¡ã€ã«ã®éšåãžã®ãªãã»ããã®ã»ãããå«ã
stashããŒãã«å
ã®ãšã³ããªã®æ°ã瀺ããŸãã
Stash Max Blockè¡ãã£ãŒã«ã
ã¯ããœãŒã¹ãã¡ã€ã«
ã®ãã®ãããª
stashéšåã®æ倧ãµã€ãºã瀺ããŸãã
[
ã³ãã³ãã©ã€ã³]ãã£ãŒã«ãã«ã¯ãæçµãã¡ã€ã«ãååŸããããã«å®è¡ããå¿
èŠãããã³ãã³ããå«ãŸããŠããŸãã
transfer_listãã¡ã€ã«ããŒãžã§ã³1ã®äŸã次ã«ç€ºããŸãã
1 140333 erase 2,0,190108 new 236,0,56,57,164,517,523,3717,21738,21739,32767,32768,32770,32825,32826,33285...
ããã§ãæåã®è¡ã¯ãã¡ã€ã«ã®ããŒãžã§ã³ïŒ1ïŒã瀺ãã2è¡ç®ã¯ç§»åãããããŒã¿ã®ãµã€ãºãã€ãŸã ãããã¯åäœã®ãã¡ã€ã«ãµã€ãº
new.dat ïŒ140333ïŒã 3è¡ç®ãš4è¡ç®ã«ã¯ã³ãã³ãïŒ
eraseããã³
new ïŒãå«ãŸããŠããŸãã ãããã®è¡ã¯åæžãããŸãããªããªã é·ãããŸãã
次ã«ã
transfer_listããŒãžã§ã³2
ãã¡ã€ã«ã瀺ããŸã ã
2 317984 129 24931 move 2,117767,117787 20 2,128537,128557 move 2,113788,117574 3786 2,124558,128344 imgdiff 0 2187 2,117631,117633 2 2,128401,128403 imgdiff 2187 2210 2,117788,117902 114 2,128558,128672 move 2,117903,121984 4081 2,164515,168596 move 2,117609,117630 21 2,128379,128400 imgdiff 4397 2229 2,117575,117602 27 2,128345,128372 imgdiff 6626 16212 2,117636,117759 123 2,128406,128529 imgdiff 22838 2170 2,117760,117766 6 2,128530,128536 imgdiff 25008 2198 2,117603,117608 5 2,128373,128378 move 2,125336,125341 5 2,129329,129334 ... move 2,383166,383179 13 2,392851,392864 move 2,383475,383496 21 2,393160,393181 erase 70,32770,32929,32931,33443,65535,65536,65538,66050,98303,98304,98306,98465,98467,98979,131071,131072,131074,131586,163839,163840,163842...,589826,622592,622594,655360
ããã§ããæåã®è¡ã¯ããŒãžã§ã³çªå·ã2è¡ç®ã¯ç§»åããããŒã¿ã®ãµã€ãºã§ãã 3è¡ãš4è¡ã¯0ã§ãã
stash-ããŒãã«ã¯äœ¿çšãããŸããã 5è¡ç®ä»¥éã«
ã¯ãerase ã
moveãããã³
imgdiffã³ãã³ã ãå«ãŸããŠã ãŸã ã äžéšã®è¡ã¯åãæšãŠãããŸã é·ãããŸãã
new_dataãã¡ã€ã«ã®æ§é ã«
移ããŸãããã
4.1.2 new_dataãã¡ã€ã«ã®æ§é
ãã®ãã¡ã€ã«ã«ã¯ãåŠçäžã«ååŸããããœãŒã¹imgãã¡ã€ã«ã³ãŒãã®æ
å ±ãããã¯ã®ã¿ãå«ãŸããŸãã ãããã¯ãééãªãå³å¯ã«é çªã«é
眮ããã
æ°ããã³ãã³ãã®ããŒã¿ãœãŒã¹ãšããŠäœ¿çšãããŸãã
ç¹å®ã®äŸã䜿çšããŠã
new_dataãã¡ã€ã«ã®æ§é ãèŠãŠã¿ãŸãããã OTAãã¡ãŒã ãŠã§ã¢MU A7010a40 [6]ã«ã¯ããã¡ã€ã«
system.new.datããã³
system.transfer.listãå«ãŸããŠ
ããŸã ã
æåŸã®ãã¡ã€ã«ã§ã¯ã
æ°ããã³ãã³ãã1901ã1945ãããã³1946è¡ã§3åçºçããŸãã ã³ãã³ãã®å®è¡ã¯å³å¯ã«ã·ãŒã±ã³ã·ã£ã«ã«å®è¡ãããç¥çµã³ãã³ãã®å®è¡ã¯è¡1901ã§
æ°èŠ new 2,226365,226468
ã¯ãèªã¿åããã€ã³ã¿ã®çŸåšã®äœçœ®ããéå§ããŠãæåã®103ãããã¯ã®
new_datãã¡ã€ã«ããèªã¿åãã
è¡ããŸãã 0ã§ãåºåãã¡ã€ã«ã«ç¯å²[226365.226468]ã®103ãããã¯ãæžã蟌ã¿ãŸãã ãã®å ŽåããœãŒã¹ã®èªã¿åããã€ã³ã¿ã¯ã¢ãã¬ã¹103ã«ç§»åããŸãã1945è¡ã§æ¬¡ã®ã³ãã³ããå®è¡ããŸã
new 2,294901,294902
ã¯ãèªã¿åããã€ã³ã¿ã®çŸåšã®äœçœ®ããéå§ããŠã次ã®1ãããã¯ã®
new_datãã¡ã€ã«ããèªã¿åãã
è¡ããŸãã 103ã§ãç¯å²[294901,294902]ã®ãããã¯ã®åºåãã¡ã€ã«1ã«æžã蟌ã¿ãŸãã ãã®å ŽåããœãŒã¹ã®èªã¿åããã€ã³ã¿ã¯ã¢ãã¬ã¹104ã«ç§»åããŸãã1946è¡ç®ã®æ¬¡ã®ã³ãã³ã
new 2,294902,294903
ã¯ãèªã¿åããã€ã³ã¿ã®çŸåšã®äœçœ®ããéå§ããŠã次ã®1ãããã¯ã®
new_datãã¡ã€ã«ããèªã¿åãã
è¡ããŸãã 104ã§ãç¯å²[294902,294903]ã®ãããã¯ã®åºåãã¡ã€ã«1ã«æžã蟌ã¿ãŸãã ãã®å ŽåããœãŒã¹ã®èªã¿åããã€ã³ã¿ã¯ã¢ãã¬ã¹105ã«ç§»åããŸãã
ãããã£ãŠã
new_datãã¡ã€ã«ã«ã¯105åã®ããŒã¿ãããã¯ãå«ãŸããŠããå¿
èŠãããããããã®é·ãã¯105 * 4096 = 430080ã§ããå¿
èŠããããŸãã
次ã«ã
patch_dataãã¡ã€ã«ã®æ§é ã«ç®ã
åããŸãã
4.1.3 patch_dataãã¡ã€ã«ã®æ§é
ãã¹ãŠã®ãããããŒã¿ã¯ããµãŒãã¹ããã¯å
ã®1ã€ã®
patch_dataãã¡ã€ã«ã«çµåãããŸãã ãã®ãã¡ã€ã«å
ã®ããŒã¿ã¯ãbsdiffããã³imgdiffã³ãã³ãã®ãœãŒã¹ã§ãã
4.2ããŒã¿æ§é ã®èª¬æ
ãã¹ãŠã®æ§é ã¯ããŒã¿ç¯å²ãèšè¿°ããŸãããåäœå€ã¯ããŒã¿ã®åäœãã€ãŸã 4096ãã€ãã 次ã®ããŒã¿èšè¿°æ§é ãååšããŸãã
- ã¬ã³ãžã»ãã[ã¬ã³ãžã»ãã]
- ã¹ã©ãã·ã¥ç¯å²ã»ãã[stash_rangese]
- å
¥åããŒã¿ã»ãã<...>
ãããã®æ§é ãé çªã«æ€èšããŠãã ããã
4.2.1ãæ
å ±ãããã¯ã®ç¯å²ã®èª¬æã®æ§é ïŒç¯å²ã®ã»ãã[rangeset]ïŒ
range_set㯠transfer_listãã¡ã€ã«ã³ãã³ãã§äœ¿çšããããœãŒã¹ãšããŒã¿ã¬ã·ãŒããŒã®äž¡æ¹ã®æ
å ±ãããã¯ã®ç¯å²ãèšè¿°ããŸãã ãŸãã
stashã¹ãã¬ãŒãžãšãªã¢ã®ç¯å²ãèšè¿°ããããã«
stashã³ãã³ãã§äœ¿çšãããŸãã
åçŽãªããŒã¿ç¯å²ã¯ã2ã€ã®å€ã§èšè¿°ãããŸããããšãã°ã[23,56ïŒã®ããã«ãç¯å²ã®æåãšæåŸã®èŠçŽ ãžã®ãã€ã³ã¿ãŒã§ãã ãã®å Žåãå·Šã®å¢çç·ã¯ç¯å²ã«å«ãŸããŸãããå³ã®å¢çç·ã¯å«ãŸããŸããã è€æ°ã®ç¯å²ãããå Žåããããã説æããã«ã¯ããã1ã€ã®èŠçŽ ïŒã»ããå
ã®ç¯å²ã®æ°ïŒãå«ãç¯å²ã®ã»ãããå¿
èŠã§ãã
transfer_listãã¡ã€ã«ã®ããŒãžã§ã³ã«é¢ä¿ãªããç¯å²ã®ç¯å²ã®èª¬æã¯æ¬¡ã®æ§é ã«ãªããŸãã
[count,posStart1,posEnd1,posStart2,posEnd2,...] ,
ã©ãã§
- count-ç¯å²ã»ããå
ã®ãªãã»ããã®æ°ãã€ãŸã ç¯å²ã»ããã®è¡ã®æåã®çªå·ãªãã æ
å ±ãããã¯ã®ç¯å²ã®æ°ã¯ããã®å€ã®ååã«çãããªããŸãã åç¯å²ã¯ãå€ã®ãã¢ã§èšè¿°ãããŸããç¯å²ã®éå§ãšçµäºã
- posStart1-æçµãã¡ã€ã«ã®æ
å ±ãããã¯ã®æåã®ç¯å²ã®å
é ã®ãªãã»ããããããã¯åäœã
- posEnd1-æçµãã¡ã€ã«ã®ãããã¯å
ã®æ
å ±ãããã¯ã®æåã®ç¯å²ã®æåŸã®ãããã¯ã®ãªãã»ããã
- posStart2-ãããã¯å
ã®æçµãã¡ã€ã«ã®æ
å ±ãããã¯ã®2çªç®ã®ç¯å²ã®éå§ã®ãªãã»ããã
- posEnd2-ãããã¯å
ã®æçµãã¡ã€ã«ã®æ
å ±ãããã¯ã®2çªç®ã®ç¯å²ã®æåŸã®ãããã¯ã®ãªãã»ããã
ã芧ã®ãšãããã»ããã«ã¯ããŒã¿ç¯å²ã®åæãå«ãŸããŠããããããããåæã®å§ãŸãã®å¢çãšçµããã®å¢çã§æ§æãããŠããŸãã ããã«ãå³ã®å¢çç·ã¯ãªã¹ãã«å«ãŸããŠããŸããã ç¯å²ã®é·ãã¯æ¬¡ã®ããã«èšç®ãããŸãïŒlength = end-beginã
ããšãã°ãäžã®
transfer_listãã¡ã€ã«ã®äŸããã
moveã³ãã³ãã§ç¯å²ã®ã»ãããã©ã®ããã«èšè¿°ãããããèŠãŠã¿ãŸãããã
move 2,117767,117787 20 2,128537,128557
ç¯å²ã®2ã€ã®ã»ããã¯ããã«ãªã¹ããããŠããŸãïŒ
- ãœãŒã¹ç¯å²ïŒ2.117767.1117787ã ç¯å²ã«2ã€ã®ãªãã»ãããå«ãŸããããšãæå³ããŸãã ãã®è¡ã«ã¯ã1ã€ã®ããŒã¿ç¯å²ãè¡šã2ã€ã®ãªãã»ããçªå·117767ãš117787ãå«ãŸããŠããŸãã ãããã£ãŠãã«ãŠã³ã=2ã次ã¯ç¯å²ã®å
é ãžã®ãªãã»ããïŒposStart = 117767ïŒã§ã次ã¯ç¯å²ã®æ«å°Ÿãžã®ãªãã»ããïŒposEnd = 117787ïŒã§ãã ãããã£ãŠãç¯å²ã«ã¯117787-117767 = 20èŠçŽ ãã€ãŸã ãã®é·ãã¯20ã§ãã
- åä¿¡ç¯å²ïŒ2,128537,128557ã åæ§ã«ãã¿ãŒã²ããç¯å²ã®å ŽåïŒcount = 2ãposStart = 128537ãposEnd = 128557ãlength-20 elementsã
äž¡æ¹ã®ç¯å²ã«åãæ°ã®èŠçŽ ãå«ãŸããŠãããšããäºå®ã¯ã移åæäœã®å±æ§ã§ãã 20åã®ãœãŒã¹èŠçŽ ã20åã®åä¿¡èŠçŽ ã«ç§»åãããŸãã
4.2.2ã¹ã¿ãã·ã¥ç¯å²æ§é ïŒstash_rangesetïŒ
stash- rangeã¯ãå³å¯ã«å®çŸ©ãããå Žæã«ããŒã¿èŠçŽ ãä¿åããããã«èšèšãããæ
å ±ãããã¯ã®ã»ããã§ãã ãã®ç¯å²ã«ã¯ãèŠçŽ ã®ã»ããïŒã©ã®ãªãã»ããããã©ã®èŠçŽ ãŸã§ïŒã ãã§ãªããã¹ãã¢ã®ååãŸãã¯ãã€ã³ã¿ãŒããããŸãã
stashç¯å²ã®æ
å ±ãããã¯ã®ã»ããã«ã¯ã次ã®æ§é ããããŸãã
number:[range_set],
ã©ãã§
- number - stashã¹ãã¬ãŒãžã®èå¥çªå·ã10é²æ°ã
- [range_set] -ããŒã¿ç¯å²ã®ã»ããã
ããšãã°ãã³ãã³ãã©ã€ã³ã¯æ¬¡ã®ããã«ãªããŸãã
stash 10 2,298306,298307
ã¯ããªãã»ãã298306ãããªãã»ãã298307ïŒãããå«ãŸãªãïŒãŸã§ã®1ã€ã®ïŒ2/2ïŒããŒã¿ç¯å²ãäœæãããããšãæå³ããŸãã ãµã€ãºã1ã€ã®èŠçŽ ïŒ298307-298306 = 1ïŒãèå¥çªå·10ã®ã¹ã¿ãã·ã¥ã¹ãã¬ãŒãžãšããŠããŒã¯ãããŸãã
å¥ã®äŸïŒ
stash 11 2,295927,295960
ã¯ããªãã»ãã295927ãããªãã»ãã295960ïŒãããå«ãŸãªãïŒãŸã§ã®1ã€ã®ïŒ2/2ïŒããŒã¿ç¯å²ãäœæãããããšãæå³ããŸãã ãµã€ãºã33èŠçŽ ïŒ295960-295927 = 33ïŒã§ãèå¥çªå·11ã®ã¹ã¿ãã·ã¥ã¹ãã¬ãŒãžãšããŠããŒã¯ãããŠããŸãã
å¥ã®äŸïŒ
stash 8 6,247114,247116,247150,247155,247156,247156
3ïŒ6/2ïŒã®ããŒã¿ç¯å²ãæå³ããŸãïŒ
1ïŒãªãã»ãã247114ãããªãã»ãã247116ãŸã§ïŒãããå«ãŸãªãïŒãã€ãŸã 2èŠçŽ ã®ãµã€ãºïŒ247116-247114 = 2ïŒ;
2ïŒãªãã»ãã247150ãããªãã»ãã247155ïŒãããå«ãŸãªãïŒãã€ãŸã 5èŠçŽ ã®ãµã€ãºïŒ247155-247150 = 5ïŒ;
3ïŒãªãã»ãã247156ãããªãã»ãã247156ïŒãããå«ãŸãªãïŒãã€ãŸã ãµã€ãº0ã®èŠçŽ ã¯ãïŒ247156ãã247156 = 0ïŒã«çµåãããç·ç§°æšèãããŠããã¹ã¿ãã·ã¥èå¥çªå·ãš-hranilische 8ã4.2.3å
¥åããŒã¿ã»ããã®æ§é <...>
ããŒãžã§ã³1ã®å Žåããã®ã»ããã¯æ¬¡ã®ããã«ãªããŸãã [src_rangeset] [tgt_rangeset],
ã©ãã§
- [src rangeset] -ãœãŒã¹ãã¡ã€ã«ã®æ
å ±ãããã¯ã®ç¯å²ã®ã»ããïŒnew_datãŸãã¯patch_datïŒãã€ãŸã ããŒã¿ãœãŒã¹;
- [tgt rangeset] -åºåãã¡ã€ã«ïŒ* .imgïŒã®æ
å ±ãããã¯ã®ç¯å²ã®ã»ãããã€ãŸã ããŒã¿åä¿¡è
ã
ããŒãžã§ã³2ããã³3ã®å Žåããã®ã»ããã¯æ¬¡ã®ã¿ã€ãã«ãªããŸãã- [tgt_rangeset] <src_block_count> [src_rangeset] ;
- [tgt_rangeset] <src_block_count> [stash_rangeset] ;
- [tgt_rangeset] <src_range> <src_loc> [stash_rangeset] ;
ã©ãã§
- [tgt rangeset] -åºåãã¡ã€ã«ïŒ* .imgïŒã®æ
å ±ãããã¯ã®ç¯å²ã®ã»ãããã€ãŸã åä¿¡æ©
- [src rangeset] -ãœãŒã¹ãã¡ã€ã«ã®æ
å ±ãããã¯ã®ç¯å²ã®ã»ãããã€ãŸã ãœãŒã¹;
- ãstash_rangeset] -ã¬ã³ãžèšå®æ
å ±ãããã¯ã¹ã¿ãã·ã¥ -ã³ãã³ãã
- <src_block_count> -ãœãŒã¹ãšã¬ã·ãŒããŒã®ç¯å²å
ã®æ
å ±ãããã¯ã®æ°ã
- <src_range> -ã®æ°ã¹ã¿ãã·ã¥ Aã®ç¯å²;
- <src_loc> -ã
4.3ãtransfer_listãã¡ã€ã«ã®ã³ãã³ãã®æ§é ãšèª¬æ
transfer_listãã¡ã€ã«ã§ã¯ã次ã®ã³ãã³ãã䜿çšãããŸãã- bsdiffãimgdiff-ããããé©çšããŸã;;
- æ¶å» -æå®ãããé åã空ãšããŠããŒã¯ããŸãã
- ç¡æ - ã¹ã¿ãã·ã¥ãšãªã¢ãã¯ãªã¢ããŸãã2ããå§ãŸãããŒãžã§ã³ã§å©çšå¯èœã
- æ°ãã -ããã®æ
å ±ãåããããã«NEW_DATAåºåãã¡ã€ã«ã®-fileæå®ãããé åãšã
- 移å -æå®ãããé åã§æ
å ±ãããã¯ã移åããŸãã
- stash-ååŠçã§æå®ãããé åã移åããŸãã2ããå§ãŸãããŒãžã§ã³ã§å©çšå¯èœã
- ãŒã -ãã¡ã€ã«ã®æå®ãããé åããŒãã§åããŸãã
4.3.1ãã³ãã³ããeraseãããnewãããzeroã
ãããã®ã³ãã³ãã®æ§é ã¯æ¬¡ã®ãšããã§ãã name [rangeset],
ã©ãã§
- name-ããŒã ã®ååã
- [rangeset] -æ
å ±ãããã¯ã®ç¯å²ã®ã»ãããèšè¿°ããæ§é ã
eraseã³ãã³ãã¯ã[rangeset]æ§é äœã§èšè¿°ããã空ã®ãããã¯ãããŒã¯ããŸããããšãã°ãã³ãã³ããå®è¡ãã erase 70,32770,32929,32931,33443,...
[7ãtransfer_list fileãline 2337]ãããåºåãã¡ã€ã«ã®ãããã¯ã®35ã»ãããçªå·[32770,32929]ã[32931,33443]ãªã©ã§ã¯ãªã¢ãããŸããæ°ããã³ãã³ãã¯ããœãŒã¹æ
å ±ãããã¯ãã€ãŸã new_datãã¡ã€ã«ãã[rangeset]ã®æ§é ã«ãã£ãŠèšè¿°ãããç¯å²ã®ã»ããã«ãã¬ã·ãŒããã€ãŸã system.imgãã¡ã€ã«ããœãŒã¹ããã®æ
å ±ãããã¯ã¯ãå³å¯ã«é çªã«éžæãããŸããããšãã°ã[7ãtransfer_list file]ã®è¡1901ã§ã®ã³ãã³ãã®å®è¡ new 2,226365,226468
ã¯ããã€ã³ã¿ãŒ103ãããã¯ã®çŸåšäœçœ®ããéå§ããç¯å²[226365,226468]ã®åºåãã¡ã€ã«ã«æžã蟌ãnew_datãã¡ã€ã«ããèªã¿åããè¡ããŸããzeroã³ãã³ãã¯ãåºåãã¡ã€ã«ã®æå®ãããç¯å²ã®ã»ãããã¯ãªã¢ããŸãããŒãã§åããŸããããšãã°ãã³ãã³ããå®è¡ãã zero 2,226365,226366
åä¿¡ãŠããã226365ãã¯ãªã¢ããŸãã4.3.2ãã移åãã³ãã³ã
ãã®ã³ãã³ãã¯ãåçŽãªæ§é ã説æããœãŒã¹ãã¡ã€ã«ããæ
å ±ãããã¯ãã³ããŒ[src_rangeset]ãåºåãã¡ã€ã«ç¯å²ã®æ¢åã®ã»ããã«æ§é ãèšè¿°ãã[tgt_rangeset] ãmoveã³ãã³ãã®æ§é ã¯æ¬¡ã®ãšããã§ãã move <...>,
ããã§ã<...>ã¯å
¥åããŒã¿ã»ããã§ãããtransfet_listãã¡ã€ã«ã®ããŒãžã§ã³ã«ãã£ãŠç°ãªããŸããããšãã°ãã³ãã³ãã次ã®å ŽåïŒ move 2,117767,117787 20 2,128537,128557
ããã¯ãæ
å ±ãããã¯ã移åããã³ãã³ãïŒmoveïŒã§ããã2ã€ã®ç¯å²ã®ã»ãããããã§èª¬æãããŠããŸãã- ãœãŒã¹ç¯å²ïŒ2.117767.1117787ã
ããã¯ã1ã€ã®ããŒã¿ç¯å²ãèšè¿°ãã2ã€ã®ãªãã»ããïŒã«ãŠã³ã= 2ïŒãç¯å²ã«å«ãŸããããšãæå³ããŸãã次ã¯ç¯å²ã®å§ãŸãã®ãªãã»ããïŒposStart = 117767ïŒã§ã次ã¯ç¯å²ã®çµããã®ãªãã»ããïŒposEnd = 117787ïŒã§ãã - åä¿¡æ©ç¯å²ïŒ2,128537,128557ã
åæ§ã«ãåä¿¡æ©ã®å ŽåïŒcount = 2ãposStart = 128537ãposEnd = 128557ã
4.3.3ãbsdiffããã³imgdiffã³ãã³ã
ãããã®ã³ãã³ãã䜿çšããŠããœãŒã¹ãã¡ã€ã«ã®æ
å ±ãããã¯ãèªã¿åãããæŽæ°ãå®è¡ãããå€æŽãããæ
å ±ãããã¯ãåºåãã¡ã€ã«ã«æžã蟌ãŸããŸããã³ãã³ãã®éãã¯ãæ
å ±ãããã¯ã«é©çšãããå€æã®ã¿ã€ãã®ã¿ã§ããäž¡ããŒã ã®æ§é ã¯æ¬¡ã®ãšããã§ãã name <patchstart> <patchlen> <...>,
ã©ãã§
- name-ããŒã ã®ååã
- patchstart- ãããé åã®å
é ã®ãªãã»ããïŒãããã¯åäœïŒã
- patchlen-ãããã¯åäœã®ãããé åã®é·ãã
- <...>ã¯å
¥åããŒã¿ã®ã»ããã§ãã
4.3.4ãé ãã³ãã³ã
ãã®ã³ãã³ãã¯ãã¹ã¿ãã·ã¥é åã«æ
å ±ãããã¯ãä¿åããŸãã次ã®æ§é ã«ãªã£ãŠããŸãã stash <stash_id> <src_range>,
ã©ãã§
- <stash_id> - ID ã¹ã¿ãã·ã¥ Aã®ç¯å²;
- <src_range> -ã»ããã¯ãæ
å ±ãããã¯ã®ç¯å²ã®stash -regionãã
4.3.5ããç¡æãã³ãã³ã
ãã®ã³ãã³ãã¯ãã¹ã¿ãã·ã¥é åãã¯ãªã¢ããŸãã次ã®æ§é ã«ãªã£ãŠããŸãã free <>,
ã©ãã§
<...> --å
¥åããŒã¿ã®ã»ãããç¶è¡ããã«ã¯...5.çµè«
ãã®äœ¿çšã®ãã¹ãŠã®è³æãšäŸã¯ããä¹ç®è¡šãã§ãããã¢ã¯ã·ã§ã³ã®ã¬ã€ãã§ã¯ãããŸããããã¡ããã誰ãããããæåã§é©çšãããã·ã¹ãã ãã¡ã€ã«ãå€æããŸãã...ãã¹ããŒã¹ããã¡ã€ã«ïŒäž»ã«ãã¡ã€ã«ã·ã¹ãã ãå«ããã¡ã€ã«ãå«ãïŒã§å€æãå®è¡ããããã®ååã«ã€ããŠèª¬æããŸããããã¡ããããã¹ããŒã¹ããã¡ã€ã«ã®åŠçã«ã¯ããã§ã«å€ãã®ã³ã³ãã¥ãŒã¿ãŒããã°ã©ã ã䜿çšãããŸããæã«å
¥ããããæ¢åã®å€æããŒã«ã®ã¬ãã¥ãŒãæžããŸããåºçç©ãæžãå§ããŠãç§ã¯ãŠãŒã¶ãŒã«ãããã°ãçè«ãã ãã®åºæ¬ã ããæã£ãŠãããã£ãã®ã§ãããªããªã
ãœãŒã¹ããã¹ããšãã¡ãŒã ãŠã§ã¢ã®ãæåãã«é¢ããäœæ¥ã®ã»ãšãã©ã¯2013幎ãã2014幎ã«ãããŠç§ãè¡ã£ããã®ã§ããã®éçšã§ç§ã¯å€ãã®äœæ¥ãããªããã°ãªããŸããã§ããã Androidã®æ°ããããŒãžã§ã³ã次ã®ããŒãã§ã¯ããã¹ããŒã¹ããã¡ã€ã«ã®åŠçã®äŸã説æããŸãããã¡ãããå€ãã®è³æããããŸããããååãšæºåã容æã«ããããã«ãèšäºãããã«2ã€ãŸãã¯3ã€ã®éšåã«åå²ããå¿
èŠããããŸããããããããããã©ã®ããã«èµ·ãã£ãããããã¯èµ·ãããŸãããããªãã¯å³å¯ã«å€æããªãã®ã¯ç§ã§ããç§ãäœãç¥ããŸããããäœããèæ
®ã«å
¥ããŸãã...質åãææ¡ãããã°ãç§ãã¡ã¯å€§æè¿ã§ãã6.æ
å ±æº
1. Sparse_fileã2. Lenovo s90Aããã€ã¹ãã¡ãŒã ãŠã§ã¢3. sparse_format.h4. Lenovo Moto Z5ã
Victara_Retail_China_XT1085_5.1_LPE23.32-53_CFC.xml.zip-Lenovo Moto X.6ã
A7010a40_S111_150825_ROW_TO_A7010a40_S112_150901_ROW_WC15.zip7ã
8ã
OTAæŽæ°ã®å埩ã