Chcę wypełnić miejsce na dysku urządzenia dowolnymi danymi zrzutu w ramach testów warunków skrajnych.Wypełnij miejsce na dysku w urządzeniu z Androidem
Próbowałem pisać bajty do pliku w pamięci zewnętrznej; oczywiście większy rozmiar dysku jest dłuższy, aby go wypełnić. [około pół minuty za 1 GB]
Czy możemy zrobić cokolwiek z powłoki adb w tym przypadku? Sprawdziłem tworzenia zrzutu danych za pomocą poleceniaDD:
dd if=/dev/zero of=/tmp/tempFiller.deleteMe bs=1024 count=$COUNT
które w zasadzie kopie zrzutu danych do pliku docelowego Stąd też bierze dużo czasu. [około 1 minuty na 1 GB]
Czy jest jakaś szybsza metoda? dla zwykłego użytkownika/superużytkownika?
Próbowałem również poleceń fallocate, truncate & mkfile w powłoce adb, ale żadne z tych poleceń nie zostały znalezione nawet w su. Domyślam się, że są to polecenia basha. & Instalacja powłoki bash w urządzeniu z systemem Android będzie wymagać zrootowania urządzenia.
fallocate -l 10G gentoo_root.img
truncate -s 10M output.file
mkfile 10240m 10Gigfile
Czy próbowałeś drastycznie zwiększyć rozmiar bloku? –
@SkyKelsey, tak, próbowałem w obu podejściach; kiedy piszemy bajtowo w pliku programowo, musimy zadbać o maksymalny rozmiar, jaki może pomieścić bytearray (Integer.MAX), a także dostępny stertę do naszej aplikacji. W przypadku polecenia dd, jeśli spróbujemy większego rozmiaru bajtu na raz, to nie działa; więc może to również sprawdza wewnętrznie. – jQueen