Wenn Sie eine apk-Datei aus einer unbekannten Quelle installieren, wird sich Android beschweren und prüfen, ob Sie diese apk-Datei installieren möchten. Diese Datei muss in einer Liste bekannter Quellen überprüft werden.
Ich bin daran interessiert zu wissen, wo sich diese Liste bekannter Quellen auf Android AOSP befindet.
Bearbeiten: Ich entschuldige mich, wenn meine Frage verwirrend ist, aber erlauben Sie mir, zu klären. Wenn Sie ein APK über USB oder E-Mail installieren, werden Sie von Android aufgefordert, anzugeben, dass Sie eine App von einer unbekannten Quelle installieren. An diesem Punkt können Sie diese Tatsache entweder leugnen oder akzeptieren und weitergehen. Um festzustellen, ob eine App von einer unbekannten Quelle installiert wird, nehme ich an , dass eine Liste bekannter Quellen in AOSP enthalten ist. Ich kann mich irren, wie ein Kommentar darauf hingewiesen hat, dass nur alle Apps aus dem Google Play Store nicht installiert sind.
Ich würde gerne sehen, wo diese Überprüfung durchgeführt wird. Wo in AOSP wird diese Überprüfung durchgeführt, wenn es keine Liste gibt, oder wo ist diese Liste bekannter Quellen, wenn es eine Liste gibt.
Ich habe also jetzt den AOSP-Quellcode durchgesehen, um zu sehen, wie die Prüfung unbekannter Quellen durchgeführt wird. Es ist komplizierter als bekanntes source = android play.
Zuallererst für den Hintergrund, dass die Überprüfung unbekannter Quellen und die Nachricht von INSTALL_NON_MARKET_APP generiert werden . Diese Markierung erscheint an einigen Stellen, aber der Hauptort ist in PackageInstallerActivity . Tatsächlich ist dies der einzige Ort in AOSP, wo es aufkommt und bis zu einem gewissen Grad verwendet wird. Schauen wir uns das hier an:
%Vor%So ist PackageInstaller ein Paket, das mit AOSP mitgeliefert wird und versteht, wie die ACTION_VIEW-Absicht für APK-Dateien gehandhabt wird. PackageInstaller überprüft zwei Dinge, bevor eine App installiert werden kann.
Die App ist eine System-App. Wenn es sich bei einer App um eine System-App handelt, ist es egal. Sie weist den Paket-Manager an, Ihre App zu installieren. Das heißt, wenn Samsung seinen Samsung-Markt als System-App auf Samsung-Geräten einsetzt, ist das automatisch eine vertrauenswürdige Quelle. Tatsächlich wird Schritt 2 hier übersprungen.
Wenn dieses Systemflag nicht gesetzt ist. Wenn dieses Flag nicht gesetzt ist und Sie somit keine System-App sind, sind Sie keine vertrauenswürdige Quelle. Abgesehen davon können System-Apps auch das Paketinstallationsprogramm überspringen und einfach die versteckte Funktion installPackage aufrufen, die in PackageManagerService . Das scheint der GooglePlayStore zu sein, da ich die Installationsfunktionen von PackageInstallerActivity deaktivieren kann. Ich kann immer noch einfach APKs installieren.
Um es kurz zu fassen: Bekannte Quellen sind SYSTEM APPS, nicht nur Anwendungen, die von Google Play heruntergeladen wurden. Google Play umgeht das Flag INSTALL_NON_MARKET_APP vollständig, da es den PackageInstaller nicht verwendet. Wenn Sie eine App erstellen, bei der es sich nicht um eine Systemanwendung handelt, können Sie APKs nur mit dem PackageInstaller installieren. Da Ihre App keine System-App ist, prüft sie, ob unbekannte Quellen deaktiviert sind.
Wie bereits in den Kommentaren erwähnt, bedeutet das Wort "sources" "Ursprungsort" (wie in den Repositories der Anwendungspakete), nicht "source code". Dies ist völlig unabhängig von der AOSP.
Normalerweise bedeutet dies "von Google Play heruntergeladene Anwendungen" (und den vorherigen Android Market).
Ich sage "normalerweise", weil Sie möglicherweise eine andere Quelle in einer benutzerdefinierten Verzweigung definieren könnten - diese ist jedoch nicht persönlich angetroffen worden (weiß nicht, wie diese mit Samsungs App Store in Verbindung steht).