Запуск TRIM из оболочки

Можно ли запустить fstrim на стоковом андроиде 4.3 из adb shell?

Я понимаю, что он запускается каждые 24 часа, когда устройство подключено и находится в режиме ожидания, но я хотел бы запускать его по запросу, чтобы проверить несколько теорий.

Какой телефон вы используете?
Есть новости с твоей стороны? Не забудьте проголосовать и принять ответ, если он работает.

Ответы (3)

ВНИМАНИЕ: я не проверял эту процедуру.

Вам нужно было бы иметь fstrimв system/bin. Этот пост XDA содержит ссылку для скачивания DropBox .

запустите, adbа затем переключите пользователей на root.

$ adb shellс вашего терминала ОС.

$ suпереключиться на пользователя root.

Чтобы скопировать fstrim на свой /system/binпуть, вам сначала нужно смонтировать системный путь как чтение/запись из adb или другого файлового менеджера.

# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /systemмонтировать /system как R/W

Затем скопируйте fstrimв системный путь.

# cp <pathtofstrim>/fstrim /system/bin

Затем вам нужно изменить разрешения fstrim, чтобы включить выполнение.

# chmod 766 /system/bin/fstrimсделать fstrim исполняемым под root

После установки правильных разрешений fstrimвы можете запускать эти команды из adb (как root):

# fstrim -v /data
# fstrim -v /cache
# fstrim -v /system


ИЛИ, вы можете пойти ПРОСТЫМ ПУТЬМ . Установите приложение LagFix и запускайте fstrim по запросу, если ваше устройство поддерживает fstrim!

Я использую стоковую версию 4.3, и LagFix не работает с ошибкой разрешения, хотя у него есть root. Это выглядит многообещающе, но я очень сомневаюсь, учитывая, что у него нет комментариев. Не говорю, что это плохо, но сначала мне нужно сделать резервную копию. посмотрев на него в шестнадцатеричном редакторе, у него есть несколько хороших строк, но, поскольку он скомпилирован, кто знает, что он делает :)
@hoss Если вы хотите прочитать больше комментариев о LagFix, у разработчика есть ветка для приложения на XDA: forum.xda-developers.com/showthread.php?t=2104326 Я говорю, что использовать его безопасно. :)
Наконец, LagFix заработал, мне пришлось внести приложение в белый список в su, затем очистить данные LagFix и повторить попытку. Раньше я получал ошибку отказа в разрешении, хотя он был в белом списке. Я попробую этот ответ и посмотрю, соответствует ли он рекламе.
Я внес некоторые изменения после тестирования. Двоичный файл кажется безобидным в том смысле, что он не делает ничего злонамеренного, и, кажется, сообщает, что он что-то сделал, но невозможно узнать, сделал ли он что-то полезное. Я награжу это за использование, LagFixи если кто-нибудь сможет найти официальную корзину fstrim, которая дополнит ответ.
@hoss LagFix сработал? Вы загрузили fstrim на свой телефон или загрузили его на ПК с Windows и скопировали на свой телефон?
У меня заработал LagFix, но я также попробовал ссылку, которую вы нашли и настроили через adb.
Ссылка на дропбокс битая.
Вы имеете в виду разрешение = 755 вместо этого? Не имеет смысла позволять редактирование без полномочий root.

В более новых версиях Android работает fstrimпо ежедневному расписанию при соблюдении условий. Или он должен запускаться при перезагрузке, если не работает более 3 дней. Смотрите этот ответ для деталей.

Однако, если вы хотите сделать это TRIMвручную, используйте инструмент командной строки Android sm fstrim. Ранее это было vdc fstrim dotrimдобавлено в Storage Manager в Oreo ( 1 ) и удалено из voldPie ( 2 ) .

Для отправки FITRIM ioctlтолько в выбранные файловые системы используйте fstrimинструмент; апплет busybox.

Обе команды требуют root или sm fstrimмогут быть выполнены из adb shell.

vold, демон управления томами (disk/eMMC), имеет это встроенное устройство. Его клиент оболочки называется «vdc» (думаю, контроллер vold, сродни rndc, удаленному контроллеру демона имен для BIND). Команда и соответствующие аргументы для суперпользователя будут такими:

vdc fstrim dotrim

Обратите внимание, что, по крайней мере, на моем планшете 4.4.4 это будет только обрезка /cacheи /data, но я думаю, что это в основном то, что вам нужно. Вы можете увидеть его ход с помощью logcat(например, logcatиз оболочки на устройстве или adb logcatна хосте, подключенном через USB). Vold будет выводить сообщение о каждом томе, который он обрезает, и о том, что он закончен (в logcat).