Jeg vil gerne vide, hvad der virkelig er tredjepartsapplikationer i android. Mens jeg henviste til Android-udvikling , står der, at applikationslaget består af:
- Native apps
- Tredjepartsapps
- Udviklerapps
Jeg ved, at tredjepartsapplikationer er dem, der ikke er udviklet af den første part (udbyder af system) som nævnt i tredjepartsapplikationer . Men jeg tror, når det kommer til Android-tredjepartsapps og udviklerapps er de samme, er det ikke? Kan nogen hjælpe mig .
Kommentarer
- Jeg kunne ærligt talt ikke ' ikke forstå adskillelsen mellem native apps, tredjeparts apps og applikationer (alle disse er applikationer i min ordbog). Som det blev citeret fra bogen (som vi ikke kunne ' ikke få adgang, medmindre vi køber den), forklarer den også forskellen mellem disse eller kun nævner dette? Hvis det gør det, kan du også citere og tilføje det til spørgsmålet?
- @AndrewT.: Åh undskyld. Det var virkelig Developer Apps ikke Applications som jeg redigerede det indsendte. Kan du fortælle, om tredjepartsapps adskiller sig fra udviklerapps. Som svaret fra Izzy skal begge være de samme, fordi begge ikke er udviklet af OS heller ikke producenten .
- Jeg antager i denne sammenhæng, " udvikler apps " står for apps, der ikke er installeret fra noget " marked " – men dem, du selv skriver og testinstallerer via de tilsvarende udviklingsrammer. I sammenhæng med " signaturer " (se mit svar nedenfor): AFAIK disse apps er underskrevet med " udviklingsnøgler ", så de har igen en slags " speciel signatur ". Jeg må undersøge dette dybere for at fortælle den nøjagtige forskel fra en brugers ' synspunkt.
Svar
Kort version
Enhver anden app end " OS- og producent-apps " betyder " tredjepartsapps ".
TL; DR
Tredjepartsapps er dem, der leveres af en, hrm, tredjepart. Selvom følgende udtryk ikke eksisterer, kan du visualisere dette som følger: Første part er den, der leverer operativsystemet (AOSP / Google), anden part producenten (tilføjer sine egne apps).
Dybest set, dette kan læses som: Alt, hvad der ikke var forudinstalleret. Dette er, hvad udtrykket " tredjepart " normalt bruges til 1 .
Teknisk baggrund
Du finder teknisk baggrund i Android s tilladelsessystem. Hvis du gennemsøger de relaterede sider på Android-udviklere eller ser min Apptilladelser forklaret for nogle tilladelser, du vil støde på sætningen " ikke til brug af tredjepartsapps " (eller lignende). Hvordan beslutter systemet, hvad der gør en " tredjepartsapp "? Den ser på dens signatur og sammenligner den med OS og producentens “signaturer. Hvis appens signatur ikke matcher nogen af de to, er den” sa " tredjepartsapp ".
" Udviklerapps "
I dit spørgsmål var fokus at beslutte mellem " tredjepart " og " udvikler " apps. I praksis er udvikler-apps snarere en " undergruppe " af " tredje fest " apps. Som den tilhørende udviklerside siger, for at gøre fejlretning af en app under udvikling lettere 3 , kan den underskrives " i fejlretningstilstand ":
Du kan underskrive en app i fejlretning eller frigivelse mode. Du underskriver din app i fejlretningstilstand under udvikling og i frigivelsestilstand, når du er klar til at distribuere din app. Android SDK genererer et certifikat til at underskrive apps i fejlretningstilstand. For at underskrive apps i frigivelsestilstand skal du generere dit eget certifikat.
[…]
Du kan køre og fejle en app, der er signeret i fejlretningstilstand på emulatoren og på enheder, der er tilsluttet din udviklingsmanchine via USB, men du kan ikke distribuere en app, der er logget ind fejlretningstilstand.
Således kan " udviklerapps " fortælles ved hjælp af et kendt " debugcertifikat ". Som den citerede kilde angiver, bør dette ikke bruges med " frigjorte apps " (f.eks. Skal en udvikler ikke offentliggøre nogen app, der har underskrevet dette måde) 2 .
Yderligere læsninger
- Verifikation af applikationssignatur: Sådan fungerer det, Sådan deaktiveres det med Xposed, og hvorfor du ikke burde
- Sårbarhed med Android-falsk ID lader malware imiteret tillid til applikationer ( beskriver en fejl, der er udnyttet til at omgå signaturbeskyttelse, så enhver app kan udgøre sig som " underskrevet af OS eller producent ", som blev løst f.eks. med Kitkat)
- Android-signaturmekanisme (beskriver forskellen mellem " ROM-signaturmekanisme " og " Tredjeparts APK-signaturmekanisme ")
- Digital signatur (generel baggrund for, hvad en digital signatur er, og hvordan den fungerer)
1: men teknisk set er det måske ikke helt korrekt (eksempel: i denne sammenhæng, hvad ville en app kaldes, som du manuelt installerede, når den var underskrevet med den samme nøgle som selve ROMen – dvs. kom fra producenten?)
2: Dette er af sikkerhedsmæssige årsager. Apps kan muligvis få adgang til andre apps “ressourcer, når de bruger den samme signatur – en kendsgerning, der f.eks. Bruges af " addons " til specifikke apps skrevet af den samme udvikler (som allerede navngivne kilde f.eks. udtrykker det: Android tillader apps, der er underskrevet af det samme certifikat, at køre i samme proces, hvis applikationer anmoder om det, så systemet behandler dem som en enkelt applikation. Og: Android giver håndhævelse af signaturbaserede tilladelser, så en app kan eksponere funktionalitet for en anden app, der er underskrevet med et specificeret certifikat. Ved at signere flere apps med det samme certifikat og bruge signaturbaserede tilladelseskontrol kan dine apps dele kode og data på en sikker måde ). Brug " din egen " certifikat beskytter " din " app mod adgang til " anden duve lopers “apps ".
3: AFAIK kan du ikke installere en " usigneret app ", så det er et must at underskrive den. Når " underskriver " en app, skal man normalt angive to adgangskoder (en til nøglelageret med dine underskrifter og en til signaturen sig selv). Brug af " debug mode " signering, dette kan undgås, da dette bruger en intern signatur af SDK med en adgangskode, der er kendt af udviklingen værktøjer. Dette gør fejlretning meget lettere, da du ikke behøver at skrive de to adgangskoder igen og igen under " kompilering ›test› kompilering ›test igen› .. " proces.
Kommentarer
- : At ' et godt udførligt svar. Men kan du fortælle, at der er behov for at underskrive en app i fejlretningstilstand .
- Som beskrevet af mit (igen opdaterede) svar: " gør fejlfinding af en app under udvikling lettere ". Jeg ' Jeg inkluderer en lille baggrund om det med " endnu en opdatering ". Lad derefter ' rydde op i vores kommentarer (sletning dem, der er forældede af mine opdateringer til svaret), skal vi?;)
- : Okay. men kan du fortælle mig, hvad der virkelig betyder med underskrift af en app. betyder det der virkelig udviklede det (om det ' OS, producent) eller betyder det noget andet?
- At ' går lidt dybt ind i den tekniske del. Du kan muligvis henvise til Wikipedia for dette. Dybest set betyder det, hvem der underskrev appen, som normalt er udvikleren.Som med et papir, der er underskrevet af en (håndskrevet) signatur, viser en digital signatur ægtheden af de signerede data (her
.apk
).