Chciałbym wiedzieć, czym naprawdę jest aplikacje innych firm w systemie Android. Kiedy mówiłem o programowaniu na Androida , jest napisane, że warstwa aplikacji składa się z:
- Aplikacje natywne
- Aplikacje innych firm
- Aplikacje dla programistów
Wiem, że aplikacje innych firm to te, które nie zostały opracowane przez pierwszą firmę (dostawcę operacyjnego system), jak wspomniano w aplikacjach innych firm . Ale myślę, że jeśli chodzi o aplikacje innych firm na Androida i aplikacje programistów, prawda? Czy ktoś mógłby mi pomóc .
Komentarze
- Naprawdę nie mogłem ' zrozumieć różnicy między aplikacjami natywnymi i zewnętrznymi aplikacje i aplikacje (wszystkie są aplikacjami w moim słowniku). Jak zostało zacytowane z książki (której ' nie możemy uzyskać, chyba że ją kupimy), czy wyjaśnia to również różnicę między nimi, czy tylko o tym wspomina? Jeśli tak, czy mógłbyś również zacytować i dodać to do pytania?
- @AndrewT.: Och, przepraszam. To naprawdę były Aplikacje dla programistów , a nie Aplikacje tak jak redagowałem post. Czy możesz stwierdzić, czy aplikacje innych firm różnią się od aplikacji programistów? Zgodnie z odpowiedzią Izzy obie powinny być takie same, ponieważ obie nie są opracowywane przez system operacyjny ani producent .
- Myślę, że w tym kontekście " aplikacje dla programistów " oznacza aplikacje, które nie zostały zainstalowane z żadnego " rynku " – ale tych, które napiszesz samodzielnie i przetestujesz i zainstalujesz za pomocą odpowiednich platform programistycznych. W kontekście " podpisów " (zobacz moją odpowiedź poniżej): AFAIK te aplikacje są podpisane za pomocą " klucze programistyczne ", więc znowu mają rodzaj " podpisu specjalnego ". Muszę jednak zbadać to głębiej, aby określić dokładną różnicę z punktu widzenia użytkownika '.
Odpowiedź
Krótka wersja
Każda aplikacja inna niż " Aplikacje systemu operacyjnego i producenta " oznacza " aplikacje innych firm ".
TL; DR
Aplikacje innych firm to te dostarczane przez, hrm, stronę trzecią. Chociaż poniższe terminy nie istnieją, możesz to sobie wyobrazić w następujący sposób: Pierwsza strona to ta, która zapewnia system operacyjny (AOSP / Google), druga strona producenta (dodaje własne aplikacje).
Zasadniczo, można to odczytać jako: Wszystko, co nie zostało wstępnie zainstalowane. Tak zwykle jest używany termin " innej firmy " for 1 .
Tło techniczne
Znajdziesz trochę informacji technicznych w systemie uprawnień Androida. Jeśli przeglądasz strony związane z programistami na Androida lub widzisz moje uprawnienia aplikacji , dla niektórych uprawnienia napotkasz wyrażenie ", którego nie mogą używać aplikacje innych firm " (lub podobne). W jaki sposób system decyduje, z czego składa się " aplikacja innej firmy "? Sprawdza swój podpis i porównuje go z podpisami systemu operacyjnego i producentów. Jeśli podpis aplikacji nie pasuje do żadnego z tych dwóch, oznacza to " aplikacja innej firmy ".
" Aplikacje dla programistów "
W Twoim pytaniu skupiono się na wyborze " strony trzeciej " i " aplikacji deweloperskich ". W praktyce aplikacje programistów są raczej " podgrupą " z " trzecią party " aplikacje. Jak stwierdza odpowiednia strona programisty , aby ułatwić debugowanie aplikacji podczas programowania 3 , można ją podpisać " w trybie debugowania ":
Możesz podpisać aplikację w trybie debugowania lub wersji tryb. Podpisujesz swoją aplikację w trybie debugowania podczas opracowywania oraz w trybie wydania, gdy jesteś gotowy do dystrybucji aplikacji. Android SDK generuje certyfikat do podpisywania aplikacji w trybie debugowania. Aby podpisywać aplikacje w trybie wydania, musisz wygenerować własny certyfikat.
[…]
Możesz uruchamiać i debugować aplikację podpisaną w trybie debugowania na emulatorze i na urządzeniach podłączonych do twojego narzędzia programistycznego przez USB, ale nie możesz dystrybuować aplikacji, na którą jesteś zalogowany tryb debugowania.
Dlatego " aplikacje programistów " mogą można uzyskać za pomocą znanego " certyfikatu debugowania ". Jak podaje cytowane źródło, nie należy tego używać z " wydanymi aplikacjami " (np. Programista nie powinien publikować żadnych podpisanych aplikacji sposób) 2 .
Dalsze lektury
- Weryfikacja podpisu aplikacji: jak to działa, Jak wyłączyć tę funkcję za pomocą Xposed i dlaczego nie należy tego robić
- Luka w zabezpieczeniach dotycząca fałszywego identyfikatora Androida umożliwia złośliwemu oprogramowaniu podszywanie się pod zaufane aplikacje ( opisuje błąd wykorzystany do obejścia ochrony podpisów, umożliwiając dowolnej aplikacji podszywanie się pod " podpisane przez system operacyjny lub producenta ", który został naprawiony np. z Kitkat)
- Mechanizm podpisu Androida (opisuje różnicę między " mechanizmem podpisu ROM " i " Mechanizm podpisu pakietu APK innej firmy ")
- Podpis cyfrowy (ogólne informacje o tym, czym jest podpis cyfrowy i jak działa)
1: chociaż technicznie może nie być w pełni poprawne (przykład: w tym kontekście, jak nazywałaby się aplikacja zainstalowana ręcznie, kiedy była podpisany tym samym kluczem co sam ROM – tzn. pochodził od producenta?)
2: Jest to spowodowane względami bezpieczeństwa. Aplikacje mogą mieć dostęp do zasobów innych aplikacji, używając tego samego podpisu – fakt używany np. Przez " dodatki " dla określonych aplikacji przez tego samego programistę (co już nazwane źródło) , na przykład podaje: Android pozwala aplikacjom podpisanym tym samym certyfikatem działać w tym samym procesie, jeśli aplikacje tego wymagają, więc system traktuje je jako pojedynczą aplikację. Oraz: Android zapewnia wymuszanie uprawnień na podstawie podpisów, dzięki czemu aplikacja może udostępniać funkcje innej aplikacji podpisanej określonym certyfikatem. Podpisując wiele aplikacji tym samym certyfikatem i korzystając z kontroli uprawnień opartych na podpisach, aplikacje mogą udostępniać kod i dane w bezpieczny sposób ). Używając " własnego " chroni " Twoją " aplikację przed dostępem " inny twórca lopers „apps ".
3: AFAIK, nie możesz zainstalować " aplikacji bez znaku ", więc podpisanie jej jest koniecznością. Kiedy " podpisujesz " aplikację, zwykle trzeba podać dwa hasła (jedno do magazynu kluczy, w którym znajdują się Twoje podpisy, a drugie do podpisu samo). Używając " trybu debugowania " podpisywania, można tego uniknąć, ponieważ używa on wewnętrznego podpisu SDK z hasłem znanym twórcom przybory. To znacznie ułatwia debugowanie, ponieważ nie trzeba wielokrotnie wpisywać tych dwóch haseł podczas " kompilacji ›testowania› kompilacji ›ponownego testowania› .. " proces.
Komentarze
- : że ' to dobra, wyczerpująca odpowiedź, ale czy możesz powiedzieć, czy istnieje potrzeba podpisywania aplikacji w trybie debugowania .
- Zgodnie z opisem w mojej (ponownie zaktualizowanej) odpowiedzi: " ułatwi debugowanie aplikacji podczas programowania ". ' dodam trochę tła z " kolejna aktualizacja ". Następnie ' s wyczyść nasze komentarze (usuwając te przestarzałe przez moje aktualizacje odpowiedzi), dobrze?;)
- : OK, ale czy możesz mi powiedzieć, co tak naprawdę oznacza podpis aplikacji. kto naprawdę go opracował (czy to ' s OS, producent), czy może to coś innego?
- To ' zagłębia się trochę w część techniczną. W tym celu możesz zapoznać się z Wikipedią . Zasadniczo oznacza to, kto podpisał aplikację, czyli zazwyczaj jest to programista.Podobnie jak w przypadku papieru podpisywanego (odręcznym) podpisem, podpis cyfrowy demonstruje autentyczność podpisanych danych (tutaj
.apk
).