bkerler / edl

Inofficial Qualcomm Firehose / Sahara / Streaming / Diag Tools :)
GNU General Public License v3.0
1.47k stars 356 forks source link

Fix setactiveslot by sending multiple patch chunks #513

Closed bongbui321 closed 3 months ago

bongbui321 commented 3 months ago

this fixes: https://github.com/bkerler/edl/issues/511, https://github.com/bkerler/edl/issues/402 https://github.com/bkerler/edl/issues/472

Confirm changing to slot b:

system_a:            Offset 0x0000000002208000, Length 0x00000002e5510000, Flags 0x0000000000000000, UUID 8d40cb7a-57b6-f435-e760-33794bfc7669, Type 0x97d7b011, Active False
system_b:            Offset 0x00000002e7718000, Length 0x00000002e5510000, Flags 0x0004000000000000, UUID cdfddd29-279b-a4c1-39b0-11bf88149800, Type 0x77036cd4, Active True

Also, I changed it to setting every partition with ending _a or _b be set active or non active accordingly. the previous implementation just change one partition only and then return

Also, for setting unactive slot, I'm fairly new to this but we set the flags like this flags &= ~(AB_PARTITION_ATTR_SLOT_ACTIVE << (AB_FLAG_OFFSET*8)), or like that in the PR

bkerler commented 3 months ago

Thanks :)