Zmiana density (dpi) w androidzie bez roota

Dzisiaj opiszę jak zmienić DPI bez rootowania telefonu i utraty danych. Wbrew pozorom jest bardzo proste, ale miałem pewne problemy korzystając z tej metody z niektórymi aplikacjami(np. Swiftkey), z kolei klasycznie, przestawiając w pliku build.prop było w porządku. Cóż, ten sposób jest dobry, kiedy szukamy idealnego ustawienia dla siebie 😉 pozwala szybko się przestawiać. Nie mniej, warto ustawić interesujące nas DPI i uruchomić kilka aplikacji, zobaczyć, czy wyglądają i działają w porządku. Warto też pamiętać o tym, że widgety głupieją i czasem znikną z ekranu, tak samo jak foldery z aplikacjami (najczęściej zdarza się to przy zmianie w górę czyli z mniejszej cyfry na większą). Dla porządku napiszę, żadnej odpowiedzialności z mojej strony za cokolwiek. Zmiany na własną odpowiedzialność. Zaczynamy:

1. Aby zadziałało muszą być zainstalowane sterowniki adb, telefon musi mieć włączone debugowanie, oraz oczywiście musi być widoczny w systemie
2. Uruchamiamy wiersz polecenia jako administrator
3. Komenda adb devices zwraca nam informację o podłączonych urządzeniach, najlepiej, żeby podłączone było jedno i żadnych emulatorów
4. Wpisujemy: adb shell wm density 480 && adb reboot 
5. 480 możemy zastąpić liczbą dpi jakie nas interesuje
5. Jeśli zadziałało, telefon uruchomi się od nowa ze zmienionym dpi
5. Operację możemy powtarzać wielokrotnie, aż do uzyskania interesującego wyniku.
6. Jeśli się rozmyślimy i będziemy chcieli przywrócić standardowe dpi, czyli to zapisane w pliku build.prop: adb shell wm density reset && adb reboot

Tak wygląda cała instrukcja, łatwizna prawda? 😉 Efekty zmian można obejrzeć poniżej:

klasyczne DPI Nexus 5, czyli 480 (klasyczne fullHD)
dpi 350, jak widać zmieniła się nam siatka na 5 aplikacji w poziomie

 

dpi 400, ustawione w moim telefonie, wg mnie wygląda najlepiej na Nexusie 5.
Noo i na koniec, co tak właściwie oznacza DPI? Otóż jest to skrót od „dots per inch”, czyli punkty na cal. Oznacza jaka ilość pikseli przypada na cal powierzchni w naszym urządzeniu. Są do tego odpowiednie standardy, ale modyfikacja tych wartości naprawdę może poprawić wygląd i przyjemność korzystania z naszych urządzeń.
Pozdrawiam!

Android 6.0 Marshmallow, nowości, trzy zgrzyty + dwa fixy. Multiwindow, a także density.

Premiera finalnego wydania Androida Marshmallow już za nami, emocje opadły, dla porządku wrzucę główne nowości:

– nowa kontrola uprawnień (np można zainstalować facebooka i zabronić mu przeglądania kontaktów), a nie tak jak kiedyś, jeśli instalujesz aplikację, zgadzasz się na wszystko
– doze, czyli lepsze zarządzanie baterią, tzn telefon uczy się kiedy go nie używasz i w tym czasie nie zbiera powiadomień, znacznie ogranicza ruch w sieci i w ten sposób oszczędza baterię
– kopie zapasowe ustawień, w tym momencie więcej rzeczy jest przechowywanych na serwerze Google, wystarczy tylko zalogować się do aplikacji i dane się synchronizują.
– lepsza edycja tekstu, z poziomu zaznaczenia możliwość włączenia np. tłumacza
– natywne wsparcie czytnika linii papilarnych

I w sumie..tyle. Zaraz, zaraz, czegoś tutaj brakuje:
W wersjach developerskich mieliśmy przecież multiwindow. A do tego był zapowiedziany Now on tap. Z rzeczy które mnie jeszcze osobiście denerwują jest density na poziomie 480. Wszystkie elementy designu są olbrzymie.

Co z Now on tap? Niestety, nie dostępne w naszym kraju. Szkoda, funkcja naprawdę fajna, natychmiastowe wyszukiwanie danych w zależności od kontekstu ekranu. Np, pytam żony, czy może pójdzie na pizzę, ona pyta gdzie, a ja przytrzymuję klawisz home i już wiem, gdzie są najbliżej zjem pizzę. Szkoda, niestety musimy poczekać.

Co z density? Cóż jest pewien sposób na zmianę, który działa zawsze, ale jest niestabilny (kiedyś go opiszę). Pozostaje edycja pliku build.prop.

A co z multiwindow? Otóż udało mi się znaleźć sposób, opisuje jak tego dokonać (oczywiście, nie biorę odpowiedzialności za ewentualne uszkodzenia itp, etc…).

Aby zacząć w komputerze muszą znajdować się sterowniki do fastboot, komputer musi być podłączony przez usb. Sposób nie wymaga roota.

1. Instalujemy Androida 6.0, (testowałem ten sposób na Nexusie 5)
2. Uruchamiamy telefon w trybie bootloader (POWER+VOL DOWN lub fastboot reboot-bootloader)
3. Instalujemy custom recovery, konkretnie TWRP, podaję link do TWRP dla Nexusa 5
3.1 Ważne, aby zaraz po zainstalowaniu, wybrać z menu Bootloadera opcję recovery, inaczej Google usunie nam naszego customowego i wrzuci swojego zaraz przy pierwszym uruchomieniu
3.2 Uwaga, po zakończeniu wszystkich operacji, po wychodzeniu z recovery twrp pyta się, czy zrootować telefon, cóż w wersji twrp-2.8.7.1 ta opcja powoduje bootloop (sprawdzone empirycznie)
4. W menu recovery wybieramy Mounts i klikamy na System
5. Jeśli nie odpalona to odpalamy konsolę, np klikając Shift+PPM i wybierając opcję: „otwórz okno polecenia tutaj”
6. W wierszu polecenia wywołujemy:
adb pull /system/build.prop
7. To polecenie skopiuje nam z telefonu do miejsca gdzie otwarliśmy konsolę plik build.prop, nie zamykamy konsoli
8. Edytujemy plik build.prop jak tekst (osobiście używam i polecam Notepad++)
9. Znajdujemy takie linie:
ro.sf.lcd_density=480
ro.build.type=user
10. Edycja pierwszej z nich pozwala na zmianę density (moja ulubiona wartość to 400)
11. Edycja drugiej z user na userdebug spowoduje, że w opcjach programistycznych, po włączeniu urządzenia pojawi się coś takiego (zwróćcie uwagę na inny kształt menu, tak się prezentuje density 400):


12. Zapisujemy plik
13. W konsoli wywołujemy po kolei:
adb push build.prop /system/
adb shell
cd system
chmod 644 build.prop
14. Uruchamiamy urządzenie normalnie
15. Po włączeniu w opcjach programistycznych cieszymy się multiwindow!

Należy pamiętać, że multiwindow jest w dalszym ciągu opcją rozwojową, w związku z tym mogą zdarzać się problemy (czytałem, że czasem battery drain).

Po tych poprawkach jest już trochę lepiej, nie mniej dalej brakuje motywów, czy możliwości edycji ikon na pasku. Cóż, czekamy na dalszy rozwój 😉

Pozdrawiam!