EXKLUSIVT: Pixel-programuppdateringar, partitionsändringar, dubbelstart och sömlösa anpassade ROM-uppdateringar

När vi pratar med TWRP: s ledande utvecklare, Dees_Troy, i frågan tror vi att det kan vara möjligt att utnyttja sömlösa uppdateringar för att tillhandahålla dubbelstart.

Under årets Google I/O, Google officiellt introducerade Android Nougat vilket har medfört flera välbehövliga förbättringar av användarvänligheten till de av oss som har turen att äga en modern Nexus-enhet. Det fanns några funktioner som Google beskrev under Google I/O som inte hittade sin väg in i de slutliga Nougat-produktionsbyggena för nuvarande Nexus-enheter, framför allt sömlösa uppdateringar.

Många användare blev besvikna över avslöjandet att sömlösa uppdateringar bara skulle finnas på enheter som fartyg med Android Nougat, men för de av oss som planerar att uppgradera till Nästa Nexus Pixel-enheter vi har en fantastisk ny funktion att se fram emot. Men sedan Google I/O har vi inte riktigt sett några ytterligare detaljer om denna nya funktion.

Det har dock inte hindrat några av de mer nyfikna bland oss ​​från att ta reda på hur exakt Google planerar att göra sömlösa uppdateringar. Ethan Yonker, som går under skärmnamnet

Dees_Troy och är mest känd för sitt arbete som huvudutvecklare på Team Win Recovery Project, duva direkt in i Nougats källkod släppt av Google för att förstå vad han har att göra med när Pixel-enheterna oundvikligen släpps. Google har gjort några intressanta ändringar av partitionslayouten för de kommande Pixel-enheterna - och med en del listigt arbete av utvecklarna på våra forum, antar Dees_Troy att Dual-boot kan vara möjligt.


Googles Pixel-telefoner och deras partitioner

Nexus 6P partitionstabell

Om du inte är medveten är telefonens lagring uppdelad i flera standardminnen partitioner. De partitioner du förmodligen är mest bekant med är /boot, /system, /data, /recovery och /cache, men om du är intresserad kan du slå upp faktiska partitionstabellen på din enhet. Mängden lagringsutrymme som är tillgängligt för dig, användaren, bestäms av storleken som tilldelats /datapartitionen. Å andra sidan är /system där de flesta av Android-operativsystemfilerna finns. Ändra storlek på dessa två partitioner till lämpligt utrymme för fler användarappar eller kanske en ny version av Android definitivt möjligt, men processen kan vara riskabel och är i allmänhet inget du någonsin kan förvänta dig av din enhet.

I allmänhet när du uppdaterar ändras endast filer inom /system och uppdateringar tillämpas på blocknivå, så att dm-verity lämnas obruten. När du uppdaterar din enhet kan du i allmänhet inte använda den aktivt alls. Istället måste du vänta på återställningen för att ändra alla nödvändiga filer inom varje partition. Detta för att förhindra eventuella problem från Android-operativsystemet som försöker komma åt en fil som för närvarande pågår uppdaterad, men på baksidan betyder det att användare måste sitta igenom flera minuter för att se Android-återställningslogotypen applicera en uppdatering.

Före Android Nougat skulle varje enhet bara levereras med en kopia av varje partition. Detta är vettigt för de flesta Android-smarttelefoner - lagringsutrymmet är på en premie (eller så är vi förledda att tro), så varför bry sig om redundansen av flera backup-partitioner? Svaret på det är sömlösa uppdateringar. Googles andra satsning på operativsystem - Chrome OS - har visat sig vara mycket framgångsrik. Android lånar faktiskt konceptet med sömlösa uppdateringar från Chrome OS. Chrome OS uppnår sömlösa uppdateringar genom att uppdatera en uppsättning redundanta, inaktiva partitioner i bakgrunden och sedan omedelbart byta ut dessa partitioner med de för närvarande aktiva före uppstart.

Chrome OS Update Workflow - Förmodligen kommer Android att följa något liknande

Till en början trodde vi att telefoner som skickades med Nougat förinstallerat endast skulle komma med en sekundär /system-partition. Enligt Dees_Troy kommer Pixel-telefonerna att levereras med två kopior av de flesta, om inte alla, partitioner på enheten.

De nya Pixel-telefonerna kommer att ha 2 systempartitioner, 2 startpartitioner, 2 leverantörspartitioner, 2 modempartitioner, etc. En uppsättning partitioner kommer att vara aktiv -- den uppsättning partitioner som för närvarande används för att starta upp enheten. När en uppdatering publiceras kommer uppdateringen att tillämpas på den andra uppsättningen i bakgrunden. När uppdateringen har tillämpats kommer en uppmaning att visas som ber om att starta om. Omstarten inkluderar inte uppstart till återställning. Istället kommer enheten att byta vilken uppsättning partitioner som används till den andra uppsättningen och du kommer snabbt, kanske nästan omedelbart, att starta upp en uppdaterad enhet. - Dees_Troy


Dual-booting Pixel-telefoner och sömlösa anpassade ROM-uppdateringar?

Med två kopior av varje partition förutspår Dees_Troy att vi kanske kan kapa den andra uppsättningen partitioner till dual-boot. Om du är på en av de mycket få enheterna som stöder MultiROM-projekt, kanske du är bekant med möjligheten till dubbelstartande ROM. Om du har bråkat med MultiROM tidigare, så är du det definitivt medvetna om att metoderna som de använder i princip är en gigantisk uppsättning hack för att få det att fungera Android. I varje XDA-tråd som tillhandahåller MultiROM på en enhet, finns det en stor ansvarsfriskrivning nära de främsta som varnar användare att "inga av dessa system är gjorda med multibooting i sinne" som att "det är möjligt att något går fel och du kommer att behöva flasha fabriksbilder igen." Men med Google förser vi oss nådigt med en andra uppsättning av partitioner att arbeta med, förväntar sig Dees_Troy att vi kanske kan köra dual-boot på Pixel-telefonerna med visst samarbete mellan olika medlemmar av ROM gemenskap.

Om vi ​​kan kapa den andra partitionen som är inställd på dual-boot, kan vi också potentiellt använda dessa sekundära partitioner för att implementera sömlösa uppdateringar för anpassade ROM också. Så om du är en av de många dedikerade Cyanogenmod-användarna varje natt, så kanske du kan uppdatera till den senaste varje natt utan att behöva starta om din telefon till återställning varje natt. Även om TWRP: s Open Recovery Scripting och de olika deltauppdateringsverktygen avsevärt har minskat tiden och ansträngningen krävs för att utföra en nattlig uppdatering, sömlös uppdatering av din ROM i bakgrunden slår definitivt ut alla andra alternativ.

Observera att vi inte kan vara säkra på att dessa funktioner kommer att fungera förrän vi faktiskt har fungerande enheter i handen, men givet Dees_Troys omfattande arbete med TWRP och hans forskning om Nougats källkod tror vi att denna spekulation är mycket trovärdig.

Även om alla dessa kommande och troliga funktioner låter positiva, upptäckte vi också många förändringar som komplicerar utvecklingen på kommande Pixel-enheter. Vi kommer att beskriva dessa i en annan artikel som är planerad till imorgon, men under tiden håll din hype i schack!