Posso remontar como somente leitura se houver uma imagem de swap em uso?

2

Quando estou jogando com meu celular Android (CyanogenMod 10.1 com kernel 3.0.78), eu encontrei isto:

  • Um script em /etc/init.d/99system.swap.sh
  • Ele remonta / system como rw e cria um arquivo de imagem em /system/swap/swap.img

Depois que o telefone é iniciado, posso encontrar esse arquivo swap.img e ele está em uso, verificando /proc/swaps . Mas o /system é montado como ro.

Eu tentei fazer a mesma coisa, por manual, em outro telefone. Mas quando tento remontar /system como ro , recebi uma mensagem de erro dizendo que há recursos em uso. Se eu trocar a imagem no arquivo swap.img , posso remontar imediatamente /system como ro .

Eu estava errado, não consigo remover /system como ro depois de remontá-lo como rw . lsof mostra que toneladas de processo estão usando /system .

    
por davidshen84 05.06.2013 / 07:56

1 resposta

2

Deve ser possível, em teoria, como a% man_de% manpage declara:

swapon

Assim, quando você tem um arquivo de troca, o kernel gosta de tratá-lo mais como uma partição, isto é, determina onde o arquivo de swap está fisicamente localizado no disco e usa essa região diretamente como faria com uma região de partição. Este é um truque para fazer a troca para um arquivo tão rápido quanto para uma partição normal.

Nesse ponto, o sistema de arquivos está fora do loop e deve estar tudo bem para tornar o próprio sistema de arquivos readonly. Se você está realmente autorizado a fazer isso é outra questão; Eu mesmo não testei e o Android em particular pode se comportar de maneira diferente do ambiente normal do Linux.

    
por 05.06.2013 / 19:34