Wpis z mikrobloga

#android #programowanie

hej ho, może jest tu jakiś spec od Androida który będzie wiedział:

mam telefon na gołym Androidzie (Pixel). Tylna kamera jest fizycznie uszkodzona (tzn tak mi się wydaje bo nie działa nawet po factory reset a telefon ostatnio dość mocno przygrzmocił w beton, aż pokruszył tylną obudowę). Wiem że przednia kamera działa (jedna z aplikacji potrafi ją otworzyć i zrobić zdjęcie)

Niestety aplikacja "Aparat" do robienia zdjęć się wykrzacza w stack trace jest coś w stylu "java.lang.IllegalArgumentException.supportsCameraApi:1719: Unknown camera ID 3"

Ktoś wie może czy jest jakaś opcja żeby permanentnie usunąć tylną kamerę z systemu? Tak żeby Aparat nawet nie próbował jej otwierać tylko od razu używał przedniej? Może jakiś magiczny plik tekstowy albo jakieś urządzenie w /dev do wywalenia? To Pixel więc jak trzeba to będę mógł zrootować.
  • 9
  • Odpowiedz
heh, mój tak grzmotnął że chwalę Pixela że jeszcze w ogóle działa, stłukło obudowę tak że aż metalową ramę widać ale odrobina taśmy klejącej i sztywny pokrowiec i jedziemy dalej. Tylko ta kamera padła :/
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@vasco_da_gama: usunięcie w systemie prawdopodobnie nic nie da, bo apka aparatu Google ma zapewne hardcode na to, ile jest aparatów. Sama treść wyjątku to sugeruje - uszkodzona kamera nie działa i system jej nie widzi, a apka mimo to próbuje się do niej dostać i dostaje błąd o nieznanym urządzeniu.
  • Odpowiedz
@revanmj: myślisz że by hardcodowali ilość aparatów? Raczej bez sensu, różne urządzenia to różne możliwości sprzętowe... wydaje mi się że dzieje się mniej więcej tyle że gdzieś jest lista mówiąca "to urządzenie ma 4 kamery", myślę że to jednak jakiś magiczny plik gdzieś na dysku. No chyba że zahardkodowali jakąś hash mapę id urządzenia -> ilość kamer, ale to by było trochę z dupy przekompilowywać android core za każdym razem
  • Odpowiedz
@revanmj: przekopałem ich kod źródłowy i się dokopałem do tego że odpowiedzialna za to powinna być implementacja HAL (hardware abstraction layer) - Android definiuje interfejsy, implementacja to 2 binarki - jedna vendor-specific, druga device-specific.

Więc pewnie racja, device-specific binarka dla Pixela pewnie hardkoduje listę aparatów, zapewne nie jest nawet open source więc jej nie poprawię :/

Pozostaje może napisanie własnego patcha na wyższych poziomach, myślę że jakbym na pałę usunął
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@vasco_da_gama: ja nawet nie mówiłem o systemie, tylko apce Google Camera. Chociaż system swoją drogą też. Apka ma configi dla każdego z obsługiwanych urządzeń i zapewne ich częścią jest ilość aparatów i oznaczenie który jest od czego. I tak mają masę parametrów specyficznych dla modelu, więc dodanie tam ilości aparatów różnicy im nie robi.
  • Odpowiedz