Zwolnienie miejsca w pamięci Galaxy J5 (SM-J500FN)

Witam smartfonowych maniaków.

TL,DR: Potrzebuję usunąć zbędne aplikacje i zwolnić miejsce w telefonie. Chcę to zrobić jak najmniej inwazyjnym sposobem, aby później nie mieć problemu z działaniem m.in. aplikacji bankowych. Czy muszę rootować telefon, czy da się w inny sposób odinstalować całkowicie część aplikacji (ze zwolnieniem miejsca na partycji /data)?

TS,DR: Mam telefon o następującej konfiguracji:

Model: Galaxy J5 2015 (SM-J500FN)
System: Android 6.0.1
SELinux: encorcing
Pamięć wew: 8 GB
Karta pamięci: 16 GB

Po przywróceniu telefonu do stanu fabrycznego pozostaje ok. 600 MB wolnego miejsca. Większości preinstalowanych aplikacji nie używam, więc mógłbym się ich pozbyć. Teraz pytanie, jak odinstalować te aplikacje całkowicie z systemu.

System plików wygląda następująco:

Filesystem                            Size     Used     Free   Blksize
/system                               2.0G     1.9G    84.8M      4.0K
/data                                 4.7G     4.5G   184.4M      4.0K
/efs                                  9.8M   332.0K     9.4M      4.0K
/cache                              192.8M     3.2M   189.6M      4.0K
/persist                              3.9M   104.0K     3.8M      4.0K
/firmware                            64.0M    11.5M    52.5M     16.0K
/storage                            681.6M     0.0K   681.6M      4.0K
/storage/0000-0001                   14.8G     2.7G    12.1G     32.0K

Sam system zajmuje 2 GB, ale aplikacje prawdopodobnie i tak są rozpakowywane do /data. Samo wyłączenie aplikacji ani odinstalowanie za pomocą adb nic nie daje.

pm uninstall pl.tvn.player
am start -a android.intent.action.DELETE -d package:pl.tvn.player

Obie komendy nie usuwają aplikacji z systemu. Ta pierwsza nawet przywraca ikonę po wyłączeniu aplikacji z poziomu telefonu.

Nie da się obecnie instalować aplikacji przez Google Play. Jedyna opcja to ściągnąć .apk na kartę pamięci, zainstalować i przenieść aplikację na kartę pamięci z poziomu ustawień. Jeśli aplikacja jest kiepsko napisana, to dalej będzie śmiecić na pamięci wewnętrznej.

Co chcę zrobić, to pozbyć się większości preinstalowanych aplikacji.

Dostęp do /data jest zablokowany.

ls /data
opendir failed, Permission denied

Co potrzebuję zrobić, aby:

  1. Dostać się do partycji /data i ją oczyścić ze śmieci
  2. Odinstalować większość aplikacji
  3. Opcjonalnie wymusić instalację aplikacji na microSD

Czy potrzebuję rootować telefon? Czy może jest jakieś inne obejście, aby uzyskać dostęp do /data? Wgranie custom recovery? Zrobię to z poziomu TWRP?

Jeśli potrzebny jest root, to jaka jest najlepsza metoda? Znalazłem skrypt autorstwa Chaifire, który instaluje superSU albo metodą podmiany plików systemowych, albo podmieniając obraz startowy (dodatkowo zmienia SELinux na permissive, deaktywuje dm-verity, co czyni smartfon bardziej podatnym na ataki). Chyba podobnie działa MagiskSU. Ważne, aby w razie czego dało się cofnąć roota (choć pewnie i tak to nic nie da ze względu na nabitego KNOX-a).

Jeśli macie jakieś doświadczenie z usuwaniem bloatware na samsungach, to podzielcie się.

Generalnie przy pamięci wewn. 8GB i Androidzie 6 nie wiele zdziałasz w kwestii pamięci dla aplikacji. Obecnie aplikacje zajmują dużo więcej miejsca i 8GB nie jest po prostu za mało. Jakbyś zmieniał smartfona to minimum 32GB.

Najlepiej postawić custom ROM (nawet betę) na takim smartfonie. Przynajmniej będzie mieć w miarę aktualne łatki bezpieczeństwa np. https://forum.xda-developers.com/galaxy-j5/development/unofficial-lineageos-17-1-beta-galaxy-j5-t4038777
Android 7+ też lepiej przenosi dane aplikacji jeżeli brakuje miejsca na partycji data.
Możesz do kompletu zainstalować Aurora Store i aplikacje z Google Play będziesz zaciągać normalnie.

Możesz również na obecnym ROM postawić Aurora Store skoro mówisz, że z apk idzie. Jest tam znacznie więcej opcji pobierania. (nie loguj się tylko swoim kontem google w nim, bo można bana dostać, użyj konta anonimowego dostępnego w aplikacji)

Odświeżam temat, bo chcę rozwiązać ten problem kompleksowo, a to, co dotychczas udało się zrobić, nie do końca jest wygodne.

Nie było żadnego problemu z rootem. Wszystkie aplikacje działają. Będzie na blogu poradnik, jak się do tego zabrać. Podpowiem: Magisk + TWRP.

Można też wgrać łatkę i włączyć Adoptable Storage, lecz chcę trzymać aplikacje w pamięci wewnętrznej, a na microSD tylko zdjęcia, filmy, pobrane pliki, mapy, itd.

Usunąłem zbędne aplikacje z /system. Od razu uprzedzam, by samemu poszukać, do czego dana aplikacja służy, a nie sugerować się opiniami innych.

Co jest jeszcze istotne, to w /system są aplikacje systemowe w oryginalnych wersjach. Jeśli apkę systemową zaktualizujemy, to nowa wersja ląduje w /data, a stara zostaje w /system.

Po oczyszczeniu /system zintegrowałem z systemem nowe wersje niektórych aplikacji, m.in. map Google za pomocą Link2SD. Tracimy wszystkie dane, bo przeniesiona aplikacja instaluje się od nowa. Inny sposób to przeniesienie folderu z apką do /system i stworzenie skrótu w /data o takiej samej nazwie. Tylko jeśli zechcemy zaktualizować apkę (albo sama się zaktualizuje, szczególnie te od Google i Facebooka nie respektują ustawień systemu), to operację trzeba przeprowadzić od nowa. I dlatego to nie jest takie wygodne.

Pomysł jest taki, aby zmienić tablicę partycji. Czy ktoś to robił w telefonach Samsung Galaxy, zwłaszcza w Galaxy J5?

Próbowałem ręcznie, czyli ściągam parted, reboot do TWRP, odpalam adb i ręcznie modyfikuję partycje. Niestety zmiany nie są zapisywane. W innych miejscach czytam, że zmianę tablicy partycji można wykonać tylko programem Odin, wgrywając plik PIT.

Znalazłem też takie narzędzie: GitHub - Lanchon/REPIT: A Device-Only Data-Sparing Repartitioning Tool For Android

I ono działa w TWRP, a nie w Download Mode. To ma szansę zadziałać?

Pytanie do Was, czy ktoś ma doświadczenie ze zmianą tablicy partycji w telefonach Samsung Galaxy i czy w ogóle warto ryzykować zamianę telefonu w cegłę? Wiem, że w S3 był problem z wadliwymi pamięciami NAND i wtedy telefon zamieniał się w cegłę, natomiast wiele osób zmieniało tablice partycji w innych telefonach z powodzeniem.

Ewentualnie jest jeszcze opcja - stworzyć job w cron, by po aktualizacji apek przenosił je do /system i tworzył skróty w /data.

Co jest do odzyskania - 620 MB z /system i 60 MB z /hidden (przestrzeń na śmieci od operatorów, u mnie tam jest tylko apka do audiobooków).