Android systemweiter Content/File Filter

  • Hallo Developer :)
    Ich habe gerade ein größeres Projekt am planen, dabei bin ich über euer Forum gestolpert und dachte ich kann hier vielleicht ein paar interessante Anregungen und Ideen sammeln und mit Leuten in Kontakt treten, die sich mit der Materie (besser) auskennen!
    Ich hoffe das ich hier mit meinem Anliegen richtig bin, da es die App-Entwicklung in manchen Punkten übersteigt, versuche es jedoch doch mal und hoffe auf ein paar gute Tipps oder Hinweise!


    Bei der Idee handelt es sich wie im Titel schon beschrieben um einen systemweiten Content Filter - was ich damit genau meine? Also ihr kennt doch bestimmt die Benutzerverwaltung die bei Android 5 in Einsatz kommt (eigentlich schon ab 4.2.2 bzw. 4.3). Dort kann man einen Nutzer anlegen, mit diesem z.B. (Kamera-)Bilder machen, Musik bzw. allgemein Daten und Apps auf dem Smartphone laden bzw. installieren. Wird der Nutzer dann gewechselt, werden diese Daten dann dem anderen Nutzer nicht mehr angezeigt – da er natürlich keinen Zugriff auf diese haben soll.


    Ich möchte nun an dieser Funktion „anlehnen“ bzw. diese unter anderem nutzen oder erweitern. Der Unterschied dazu ist, dass ich einen „Custom-“ Filter erstellen möchte. D.h. ich möchte z.B. Bilder vom Besitzer des Smartphones nach einem bestimmten Algorithmus für andere Nutzer anzeigen lassen oder eben nicht (Kleines Beispiel – nur die Bilder anzeigen lassen, die in der letzten halben Stunde gemacht wurden).


    Meine Voraussetzungen sind folgende:
    - Keine App muss dafür extra angepasst werden. Ich kann diese Funktion als "Device-Owner" aktivieren bzw. deaktivieren und alle Apps laufen genau gleich weiter. Ebenso kann die eine Foto App nicht trotzdem alle Bilder anzeigen, sondern alle sollen den gleichen gefilterten Content zurückliefern (also brauche ich die zentrale Schnittstelle, die auf die Daten des Smartphones zugreifen)
    - Die Funktion muss später auch auf andere Geräte portierbar sein, also sie darf nicht geräteabhängig sein, sowie nicht herstellerabhängig (Die Funktionalität lässt sich also "ohne großen Aufwand" auf einem Standard Nexus implementieren, sowie auf einem HTC oder auch auf dem Cyanogenmod)


    Also muss ich sozusagen eine Schicht darunter (Richtung Systemfunktionen) diesen Filter einbauen. Ich weiß das es sich dabei um Anpassungen des Kernels handeln kann - nur stellt sich mir nun die Frage wo genau denn?! (Und ja ich weiß das es nicht gerade einfach ist)


    Erst war meine Idee, das SDK (also die Android API) „umzuschreiben“. Also den Filter zwischen einer Funktion zu packen, die für das Auslesen der Daten vom internal/external Storage bzw. vom Content Provider zuständig ist. Das habe ich dann aber jetzt auch als nicht sinnvoll bzw. umsetzbar eingestuft.


    Nun versuche ich in den Tiefen des Source Codes einige Ansatzpunkte zu finden, jedoch bis jetzt nicht gerade erfolgreich. Ich muss also sozusagen den Code finden, die die Schnittstelle der API anspricht. Wie gesagt, zum Beispiel die der Android Benutzerverwaltung (Welche nicht wie das UNIX User Konzepts funktioniert, sondern mit XML-Einträgen und Syslinks von Benutzern auf Ordnern funktioniert)


    Könnt Ihr mir vielleicht ein paar Tipps geben wo ich anfangen kann und in wie Fern sich das überhaupt umsetzen lässt? Hat vielleicht jemand schon annähernd Erfahrung damit gemacht? Kann jemand irgendwelche Tipps, Hinweise oder Quellen geben die mir etwas helfen?


    Ich habe bis jetzt mit Cyanogenmod 13 für das Samsung S3 gearbeitet bzw. den Source Code dafür durchgeschaut. Ich habe sogar einen eigenen Build schon erstellt. Da ich gerade kein Smartphone mit Android > 5 besitze, habe ich darauf zurückgegriffen. Wäre das eigentlich ein Problem? Sollte ich lieber mit dem Stock Android von Google arbeiten das auf dem Nexus & Co läuft?


    Als kleine Anmerkung - diese Funktion soll dann später zum Beispiel nicht nur für Dateien funktionieren, sondern z.B. andere Funktionen wie die Social Media Funktionalität einschränken (also zum Beispiel das Posten von Statusmeldungen untersagen) . Wobei es sich hierbei schwieriger eingreifen lässt.... Andere Systemfunktionen lassen sich ja schon über Benutzerprofile (von der vorhin erwähnten Android Benutzerverwaltung) einschränken.



    Ich danke euch jetzt schon mal fürs durchlesen und hoffe auf ein paar Antworten! :)


    Liebe Grüße und einen schönen Abend!
    Fabian

  • Sorry das ich erst jetzt schreibe, aber ich fand eher keine zeit den langen text zu lesen *gg*


    Deine Idee ist leider nicht machbar, außer du verwendest nur Cyanogenmod. Das Betriebssystem ist kompiliert und auf dem smartphone installiert, du kannst da nicht einfach mal hier und da irgendwelche dinge ändern. Du kannst höchstens den Quellcode ändern und das Betriebssystem neu compilieren, was dir aber eben nur mit einem custom ROM gelingen wird. Aber schaden kanns nicht wenn du eine Filter engine in Cyanogenmod zu implementierst :P

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!