1 Punkte von GN⁺ 2 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • Die Banned Book Library ist ein digitales Dead-Drop-Projekt, das eine Wi‑Fi-Smart-Glühbirne in einen offenen Access Point und Webserver verwandelt, sodass nahegelegene Geräte auf E-Books zugreifen können, solange die Birne eingeschaltet ist
  • Die Hardware begann mit einer auf ESP32C3 4MB basierenden Glühbirne mit vorinstalliertem Tasmota; wegen des kleinen Flash-Speichers bestand die zentrale Einschränkung darin, Firmware, Website und Buchdateien gemeinsam unterzubringen
  • Das Hinzufügen von microSD wurde verworfen, weil echtes Löten im Inneren der Glühbirne und das Ausbauen der Platine schwierig waren und sich die Birne danach nur schwer sicher wieder zusammensetzen ließ; stattdessen wurde die Partitionstabelle angepasst und der Dateispeicher von 320KB auf 2MB vergrößert
  • Da Arduino allein nicht auf geschützte Flash-Bereiche zugreifen konnte, wurden ESP-IDF und Arduino as a Component verwendet; außerdem wurde ein eigener Safeboot-Firmwarepfad zusammen mit ElegantOTA für Updates eingerichtet
  • Die fertige Web-App bietet eine Bücherliste, ein Admin-Panel, eine Wiederherstellungsfunktion und ein Captive Portal; wegen der 4MB-Grenze ähnelt eine einzelne Birne eher einer persönlichen Bibliothek mit einigen ausgewählten Büchern als einer Sammlung mit vielen Titeln

Überblick

  • Das Projekt begann mit der Idee, eine Wi‑Fi-Smart-Glühbirne so umzubauen, dass sie einen offenen Wi‑Fi-Access-Point und einen Webserver für verbotene Bücher bereitstellt
  • Wenn die Birne eingeschaltet ist, können Nutzer in der Nähe mit einem Wi‑Fi-fähigen Gerät auf die in der Birne gespeicherten Materialien zugreifen
  • Durch ihre Form fällt die Birne kaum auf, ist vergleichsweise günstig und wurde daher als digitaler Dead Drop gedacht, der an verschiedenen Orten in der Nachbarschaft hinterlassen werden kann
  • Die Idee wurde von Ben Browns Kurzgeschichte Library inspiriert, in der die „Bibliothek“ als digitales Archiv für Materialien dient, die nicht aus dem Internet verschwinden sollten, etwa kreative Werke, Anleitungen oder 3D-Modelle
  • Vor einigen Monaten begann die praktische Arbeit, das Ergebnis wurde als Banned Book Library veröffentlicht

Hardware

  • Nach dem Teilen der Idee bei einem lokalen DEFCON-Treffen fiel der Blick auf Tasmota
    • Tasmota ist eine Open-Source-Firmware, die sich auf vielen Smart-Geräten installieren lässt, um sie mit Home-Automation-Systemen wie HomeAssistant zu integrieren
    • Das Hauptziel ist, Geräte lokal zu steuern, statt von Cloud-Diensten abhängig zu sein
    • Viele Smart-Geräte hängen von Cloud-Diensten ab, die sich mit der Zeit ändern oder verschwinden können; Tasmota kann das durch internes Hosting ersetzen
  • Tasmota selbst wurde nicht direkt verändert, aber es wurde ein Händler für Wi‑Fi-Glühbirnen mit vorinstalliertem Tasmota gefunden
    • Auf der Produktseite stand, dass die Birne ESP32C3 4MB verwendet
    • Auch die GPIO-Pins für die LED-Steuerung waren dokumentiert, was später hilfreich war
    • Das Pin-Mapping war R=GPIO6, G=GPIO7, B=GPIO5, CW=GPIO3, WW=GPIO4
  • Tasmota unterstützt OTA-Firmware-Updates, sodass die Aussicht bestand, eigene Firmware aufzuspielen, ohne die Birne zu öffnen
  • Das größte Problem war der 4MB-Flash, denn darin mussten Firmware, Website und Buchdateien gemeinsam Platz finden
  • Um das Risiko einzuplanen, bei Experimenten ein Gerät zu zerstören, wurden zwei Glühbirnen gekauft

Zerlegung

  • Der weiße Kunststoff-Diffusor an der Oberseite der Birne wurde mit einer Klinge zweimal ringsum eingeschnitten und dann durch Verdrehen entfernt
  • Im Inneren befand sich eine runde Tochterplatine mit den LEDs, die über sechs Pins mit der unteren Platine verbunden war
  • Durch ein Loch in der Mitte ragte ein Teil der Hauptplatine nach oben; dabei handelte es sich um die ESP32-Antenne
  • Das Gehäuse der Birne und die Tochterplatine bestanden aus Aluminium, was wie ein Design zur Sicherung des Wi‑Fi-Signals wirkte
  • Nach dem Abnehmen der Tochterplatine wurden der ESP32C3 und Bauteile sichtbar, die offenbar für Stromwandlung und LED-Ansteuerung zuständig waren
  • Am ESP32 lagen mehrere freiliegende Pins, sodass es möglich schien, einen microSD-Kartenleser anzuschließen
  • Da sich ein Lötkolben nicht in das Innere der Birne führen ließ, musste die Hauptplatine ausgebaut werden; dafür musste eine gummiartige Vergussmasse mit Messer und Schraubendreher herausgearbeitet werden
  • Der Ausbau der Hauptplatine war äußerst umständlich, und nach dem Wiedereinbau ließ sich die Sicherheit des Geräts kaum noch verlässlich einschätzen; als notwendiger Schritt für echte Dead-Drop-Installationen war das ungeeignet
  • Die zerlegte Birne diente als Entwicklungsplattform, und für die serielle Programmierung wurden Kabel an VCC, GND, TX, RX und IO9 gelötet
    • Anhand von Fotos desselben Moduls auf AliExpress wurden die Pin-Beschriftungen geprüft, um VCC, GND, TX und RX zu identifizieren
    • GND wurde mit der leicht lötbaren Metallabschirmung verbunden
    • Für den Download-Modus wurde IO9 beim Booten auf Masse gelegt
  • Mit esptool wurde die komplette Firmware ausgelesen, und nach einigen Minuten lag tasmota_original_firmware.bin vor

Erste Experimente

  • Hello World

    • Zunächst war geplant, den Tasmota-Quellcode so zu verändern, dass daraus die Banned Book Library wird, doch die Firmware war komplexer als erwartet und unterstützte viele Architekturen und Geräte, wodurch der Umfang zu groß wurde
    • Da für das Projekt unnötige Funktionen entfernt und Speicherplatz eingespart werden sollten, wurde die Anpassung von Tasmota verworfen
    • Nachdem bestätigt war, dass sich der ESP32 mit Arduino programmieren lässt, wurde die Arduino IDE eingerichtet
    • Ein einfaches Hello-World-Programm wurde aufgespielt, das Nachrichten über die serielle Schnittstelle ausgab, womit bestätigt war, dass sich direkt eigene Firmware auf die Birne schreiben ließ
  • Webserver

    • Der nächste Schritt war die Einrichtung eines offenen Wi‑Fi-Access-Points und eines Webservers
    • Ein ESP32-Webserver-Tutorial diente als Ausgangspunkt, wurde aber angepasst, da die LED-Steuerung zu diesem Zeitpunkt nicht das Ziel war
    • Später wurde auf Async Web Server umgestellt, und die Umsetzung orientierte sich an passenden Tutorials dazu
  • microSD-Karte

    • Um den Speicher zu erweitern, wurde ein Sparkfun-microSD-Breakout-Board gekauft
    • Zur Verdrahtung des SD-Kartenlesers wurde das Datenblatt des ESP32C3 herangezogen
    • Für Prototypen wurde statt der echten Birne ein Adafruit ItsyBitsy ESP32 verwendet, weil sich dort Pin-Header und microSD deutlich leichter anlöten ließen
    • Zwar gelang es, Webserver-Dateien über microSD und LittleFS zu hosten, doch da sich das nur schwer in der echten Birne umsetzen ließ, wurde der microSD-Ansatz aufgegeben
    • Um an den ESP32C3 der realen Birne zu löten, hätte die Platine aus dem Gehäuse ausgebaut werden müssen, was praktisch fast einer Zerstörung des Geräts gleichkam
    • Auch eine Wiederverwendung der LED-Steuerpins wurde ausprobiert, doch in dieser Schaltung konnten die GPIOs nur als Ausgänge dienen, die Transistoren einschalten und den Stromkreis gegen Masse schließen
    • Es wurde sogar eine 3D-gedruckte Klemme entworfen, die auf den ESP32 gesetzt wird und Kontakt zu den Pins herstellt, doch sie war zu instabil und unzuverlässig und wurde verworfen

Prüfung von Umwegen

  • Um zu sehen, ob es eine leichter zu lötende Birne gibt, wurden andere Smart-Glühbirnen untersucht
  • Es wurden verschiedene Teardown-Berichte gefunden, aber die meisten zeigten einen ähnlichen inneren Aufbau wie die vorhandene Birne
  • Einige Birnen verwendeten keine ESP32-Chips, doch da die ESP32-Programmierung bereits erlernt worden war, wurde der Fokus auf ESP32-basierte Modelle eingegrenzt
  • Eine in einem lokalen Hardwareladen gekaufte Birne hatte einen ähnlichen Aufbau, jedoch einen Aluminium-Schutzteil, der das sichere Entfernen der Hauptplatine erschwerte
  • Philips WiZ wirkte vielversprechend, weil nach dem Entfernen nur des Kunststoff-Diffusors ein ESP32C3-mini-1 sichtbar wurde, doch an die benötigten ESP32-Pins war trotzdem nicht heranzukommen
  • Auch wurde geprüft, eigene Elektronik in eine normale LED-Birne einzubauen, aber das erwies sich als noch komplexer und spezieller als das Flashen der Tasmota-Birne
  • Am Ende blieb es bei der Tasmota-Birne, und die Lösung musste innerhalb der 4MB-Grenze gefunden werden

Das Speicherproblem

  • Die ESP32-Partitionstabelle liegt gewöhnlich beim Flash-Offset 0x8000; dieser Bereich wurde ausgelesen und in CSV umgewandelt, um die Struktur zu prüfen
  • Die vorhandenen Partitionen waren nvs, otadata, safeboot, app0 und spiffs
    • nvs dient als nichtflüchtiger Speicher für Einstellungen wie Wi‑Fi-Netzwerke, Passwörter oder LED-Farben
    • otadata wurde als Bereich für OTA-Updates identifiziert
    • safeboot ist eine separate Boot-Firmware, die Tasmota zum Flashen der Haupt-Firmware verwendet
    • In app0 ist die Haupt-Firmware gespeichert
    • spiffs ist eine kleine Dateisystem-Partition für Dateien und kann in diesem Fall auch LittleFS repräsentieren
  • In der ursprünglichen Konfiguration belegte die Haupt-Firmware fast 3MB, Safeboot fast 1MB, und für Dateispeicherung blieben nur 320KB
  • Da die eigene Firmware deutlich einfacher als Tasmota war, lag es nahe, app0 zu verkleinern und spiffs zu vergrößern
  • Die neue Partitionierung setzte spiffs auf eine Größe von 0x200000 und schuf damit 2MB Speicherplatz für Webdateien und Bücher
  • Das Ändern der Partitionstabelle ist riskant; bei Beschädigung bootet das Gerät nicht mehr und kann nur per serieller Programmierung wiederhergestellt werden
  • Am Ende der Tabelle befindet sich eine MD5-Prüfsumme, sodass sich das Gerät nicht allein durch geänderte Offsets und Größen booten ließ
  • Da sich die laufende app0-Partition selbst nicht verschieben ließ, ohne diese Firmware unbootbar zu machen, musste die Startposition von app0 erhalten bleiben
  • Es wurde eine neue Partition-CSV erstellt, daraus mit gen_esp32part.py eine binäre Tabelle erzeugt und diese anschließend mit xxd als C-Array für partition.h ausgegeben
  • Es wurde eine Funktion geschrieben, die den Vorgang überspringt, wenn die MD5-Prüfsumme bereits zur neuen Tabelle passt, und andernfalls die Tabelle löscht und die neue schreibt
  • In der Arduino-Umgebung war der Zugriff auf geschützte Flash-Bereiche blockiert, sodass die APIs zwar Erfolg meldeten, die Partitionstabelle aber tatsächlich weder lesen noch schreiben konnten

ESP-IDF

  • Das offizielle ESP32-Framework ESP-IDF ist aufwendiger in Einrichtung und Nutzung, bietet aber deutlich mehr Kontrolle über Gerät und Framework
  • Mit idf.py menuconfig lassen sich Framework-Einstellungen ändern; dieses Menü funktioniert ähnlich wie das menuconfig des Linux-Kernels
  • Um die Partitionstabelle lesen und schreiben zu können, musste SPI_FLASH_DANGEROUS_WRITE_ALLOWED auf Allowed gesetzt werden
  • Auch SPI_FLASH_DANGEROUS_WRITE_ABORTS musste deaktiviert werden, damit der Zugriff auf die Partitionstabelle funktionierte
  • Bei direkter Nutzung von ESP-IDF standen die Komfortfunktionen von Arduino nicht unverändert zur Verfügung, doch mit Arduino as a Component ließen sich Arduino-Funktionen und ESP-IDF-Kontrolle kombinieren
  • Bibliotheken wie ElegantOTA, Async_TCP und AsyncWebServer mussten in das components-Verzeichnis des Projekts oder in das libraries-Verzeichnis der Arduino-Komponente kopiert werden
  • Einige CMakeLists.txt mussten ebenfalls angepasst werden; für diese wiederkehrende Arbeit wurde das Skript build.sh ins Repository aufgenommen
  • Gebaut wurde mit idf.py build, geflasht seriell mit esptool -p /dev/ttyUSB0 write-flash 0xe0000 build/library.bin

Einstellungsseite

  • Das Haupt-Firmware-Image enthält wichtige Webserver-Endpunkte, der eigentliche Bibliothekscode liegt jedoch separat in der LittleFS-Partition
  • Das Dateisystem-Image muss gesondert geflasht werden, wofür ElegantOTA eingebunden wurde
  • Wenn das Gerät bootet, ohne dass das Dateisystem bereits geflasht wurde, erscheint eine Einstellungsseite
  • Diese Seite erklärt, wie das Dateisystem-Image und die Safeboot-Firmware über ElegantOTA geflasht werden

Safeboot

  • Um OTA-Updates der Haupt-Firmware beizubehalten, sollte anfangs das Tasmota-Safeboot unverändert weiterverwendet werden
  • Tasmota-Safeboot führt Updates mit den Wi‑Fi-Einstellungen aus der nvs-Partition durch
  • Problematisch daran war, dass Wi‑Fi-SSID und Passwort dabei im Klartext in der nvs-Partition gespeichert werden
  • Wenn die Birne draußen zurückgelassen wird, ist es keine gute operative Sicherheit, wenn diese Wi‑Fi-Zugangsdaten darin verbleiben
  • Die eigene Firmware löscht daher zuerst die nvs-Partition und zusätzlich auch die SPIFFS-Partition
  • Sobald die Wi‑Fi-Einstellungen in nvs verschwunden sind, kann Tasmota-Safeboot keine Verbindung mehr zum Netzwerk herstellen, wodurch der normale Firmware-Update-Pfad unterbrochen wird
  • Deshalb wurde eine eigene Custom-Safeboot-Firmware notwendig
  • Die Safeboot-Firmware wurde auf Basis eines GitHub-Beispiels erstellt, das OTA-Updates über einen minimalistischen Webserver und Access Point ausführt
  • Einige menuconfig-Optionen wurden deaktiviert, um das Image so weit zu verkleinern, dass es in die Safeboot-Partition passte; am Ende funktionierte es
  • Die Safeboot-Partition selbst ist nicht passwortgeschützt, aber die Admin-Funktion zum Neustart in Safeboot ist durch ein Passwort abgesichert

Webanwendung

  • Bibliothek

    • Der Startbildschirm zeigt das Bild eines gelben Versandcontainers mit einer Tür
    • Dieses Bild verweist auf die bereits erwähnte Kurzgeschichte Library von Ben Brown
    • Obwohl das Bild Speicherplatz verbraucht, wurde es beibehalten; zusätzlich erhielt der Startbildschirm einen Glitch-Effekt für ein „hackerartiges“ Gefühl
    • Die eigentliche Bibliotheksseite wurde per Hand in HTML und CSS umgesetzt
    • Der ursprüngliche Plan war nur ein einfaches HTML-Index mit Dateiliste, wurde aber später ansprechender und unterhaltsamer gestaltet
    • Die Struktur der Website ist vergleichsweise einfach
    • Es gibt einen Abschnitt, der erklärt, was man gerade vor sich hat
    • Im Buchbereich werden Titel, Autor und der Grund angezeigt, warum das Werk angefochten oder verboten wurde
    • Es gibt auch einen Abschnitt mit Referenzlinks, doch da der Access Point der Banned Book Library keine Internetverbindung hat, funktionieren externe Links während der Nutzung nicht
  • Admin

    • Unter /admin gibt es ein passwortgeschütztes Admin-Panel
    • Das Admin-Panel ermöglicht die Steuerung der LED-Farbtemperatur
    • Ziel ist, bei der Installation im öffentlichen Raum die vorhandene Lichtfarbe nachzuahmen, damit die Veränderung weniger auffällt
    • Da der Verkäufer der Birne die GPIO-Pins für die Steuerung der einzelnen LED-Farben dokumentiert hatte, konnten die Intensitäten pro Farbe mit AnalogWrite() gesetzt werden
    • Die Farbeinstellungen werden in NVS gespeichert und beim nächsten Boot wiederhergestellt
    • Zu den Admin-Funktionen gehört auch eine Schaltfläche, die zur Wiederherstellungsseite führt
  • Wiederherstellung

    • Die Wiederherstellungsfunktion setzt die Partitionstabelle teilweise zurück und bootet anschließend in Safeboot
    • Praktisch bedeutet das einen Neustart in die eigene Safeboot-Partition, nach dem sich über die Banned-Book-Library-Firmware eine andere Firmware flashen lässt
    • Das Ziel kann eine neue Version, Tasmota, ESPHome oder etwas anderes sein
    • Ein guter Weg, die Safeboot-Partition selbst wiederherzustellen, wurde bisher noch nicht gefunden
    • Wenn Tasmota erneut geflasht wird und in der Tasmota-Oberfläche „Firmware Upgrade“ gewählt wird, bootet das Gerät wieder in das benutzerdefinierte Safeboot
    • Dieses Safeboot lässt sich zwar für Tasmota-Updates verwenden, fügt sich aber nicht nahtlos in das normale Tasmota-Upgrade-Erlebnis ein
    • Aus diesem Grund stellt die Partitionswiederherstellung den Safeboot-Subtype nicht vollständig auf Factory zurück, sondern belässt ihn bei OTA_1
  • Captive Portal

    • Da Nutzer nach der Verbindung mit dem offenen Access Point sonst womöglich einfach aufgeben würden, sobald sie nur feststellen, dass kein Internet vorhanden ist, wurde ein Captive Portal nötig
    • Der frühere Ansatz bestand darin, HTTP-Anfragen abzufangen und auf das Portal umzuleiten, doch da heute die meisten Websites HTTPS verwenden, funktioniert das nicht mehr besonders gut
    • Moderne Ansätze arbeiten mit DHCP-Optionen, die die Nutzung eines Captive Portals ankündigen, sowie mit der Behandlung gerätespezifischer Portal-Erkennungsanfragen
    • Es wurde Beispielcode für Captive Portals auf dem ESP32 gefunden und teilweise in das Projekt übernommen
    • Dieser Code erledigt zwei Dinge
    • Ein DNS-Server beantwortet alle Anfragen mit der eigenen IP-Adresse des ESP32
    • Bestimmte HTTP-Anfragen von Microsoft, Android, iOS, Firefox und anderen werden abgefangen und mit Redirects oder Antworten bedient
    • Unbekannte Anfragen werden in server.onNotFound auf eine lokale URL umgeleitet, während Host und URL im seriellen Monitor ausgegeben werden

Abschließende Gedanken

  • Größenbeschränkung

    • Der gesamte Speicher des Geräts ist auf 4MB begrenzt
    • Einige geprüfte EPUB-Bücher waren jeweils etwa 350KB groß, sodass auf eine einzelne Birne nur wenige solcher Bücher passen
    • Anfangs war das enttäuschend, weil ursprünglich ein Webserver mit vielen verbotenen Büchern vorgesehen war
    • Später wurde die begrenzte Kapazität eher als Vorteil gesehen, weil jeder Dead Drop dadurch die Auswahl der Person widerspiegelt, die ihn erstellt hat
    • Diese Person muss Bücher auswählen, die ihr wichtig sind oder zu denen andere ihrer Meinung nach Zugang haben sollten
    • Wenn in einem Gebiet mehrere solcher Geräte platziert würden und jede Birne andere Materialien enthielte, könnte das Umherziehen und Entdecken der Inhalte sogar interessanter werden
  • Ideen für später

    • Farbsteuerung

      • Es besteht der Wunsch, Slider für eine feinere Steuerung von RGB-Farben und weißer Farbtemperatur hinzuzufügen
      • Damit ließe sich die vorhandene Beleuchtung des Installationsorts noch genauer nachbilden
    • Mesh Networking

      • Im Zusammenhang mit der Speichergrenze kam die Idee auf, mehrere Glühbirnen zu einem Mesh-Netzwerk zusammenzuschließen
      • Mit etwas wie einer verteilten Hash-Tabelle könnten Bücher von Geräten in Reichweite über ein einzelnes verbundenes Gerät bereitgestellt werden
      • Diese Idee bleibt als interessante Richtung bestehen, die weiter erforscht werden könnte
    • Sonstiges

      • Es gibt noch viele weitere Ideen, Smart-Geräte für andere Zwecke umzunutzen
      • Der ESP32-Chip wird als sehr günstig und zugleich leistungsfähig genug eingeschätzt
      • Nachdem der Umgang mit dem ESP32 gelernt wurde, ist es wahrscheinlich, dass künftig noch mehr ESP32-Projekte entstehen

1 Kommentare

 
GN⁺ 2 시간 전
Hacker-News-Kommentare
  • Wie bei Botschafter Pravin Lal aus Alpha Centauri wirkt die Warnung weiterhin passend, dass diejenigen, die den Informationsfluss kontrollieren wollen, am Ende diejenigen sind, die herrschen wollen.

    • Obwohl Informationen heute recht frei fließen, sieht man dennoch eine Zunahme von Tyrannei.
      Eher scheint „Demokratie stirbt unter donnerndem Applaus“ die Realität zu treffen.
    • „Verschwinde von meinem Land, du verdammter Friedenstruppen-Soldat!“
      Das beste 4X-Spiel aller Zeiten, und das Jahr 2060, das dieses Spiel entwarf, scheint jeden Tag näher zu rücken.
    • Das großartigste Strategie-/Philosophie-Spiel, das ich in den letzten 30 Jahren gesehen habe.
      Es wirkt wie ein Werk aus dem Höhepunkt der Komplexität und Reife von Spielen.
    • Wie bei Sister Miriam Godwinsons Zitat über Nanoroboter trifft auch heute noch die Angst zu, Schlüsselindustrien Dingen wie „Silber und Klumpen Teig“ zu überlassen und ihnen dann auch noch Intelligenz beizubringen.
      Dieses Spiel und seine Ideen sind wirklich zeitlos.
    • Die Redeweise von vor etwa 30 Jahren, dass „Information frei sein will“, wirkt heute reizvoll naiv.
      Denn wir haben gesehen, dass Lügen auch Information sind und sich im selben Strom sogar noch besser verbreiten können.
  • Wie zu erwarten war, waren die im Artikel genannten Bücher in Wirklichkeit keine „verbotenen Bücher“.
    Meistens werden auf Wunsch von Eltern Bücher mit expliziten Inhalten aus Schulbibliotheksbeständen entfernt.

    • Der Großteil des Textes handelt davon, eine Glühbirne in einen Wi‑Fi-Hotspot/Webserver zu verwandeln, aber dann lautet das Fazit plötzlich: „Eigentlich ist The Color Purple technisch gesehen kein verbotenes Buch.“ Das wirkt thematisch seltsam.
      Da das nicht der Kern des Textes ist, habe ich von den Buchbeispielen wohl nur zwei gesehen.
    • Was ist überhaupt die Definition von „verboten“?
      Auch Nineteen Eighty-four enthält sexuelle Inhalte, also muss ein autoritärer Mensch, der den Zugang zu totalitärer Literatur einschränken will, nur Eltern wegen Sexualthemen in Rage bringen.
    • Wenn ein Buch in einer bestimmten Schulbibliothek verboten ist, dann ist es verboten.
      Ein Buch muss nicht weltweit verboten sein, damit man es „verboten“ nennen kann.
    • Vielleicht gibt es auch Bücher, die absichtlich auf ein Verbot hinarbeiten, um das Etikett „verbotenes Buch“ zu bekommen.
      Wahrscheinlich gibt es davon nicht viele, aber heute wirkt das fast wie eine Abkürzung zu schlechtem Ruhm.
  • Früher gab es PirateBox.
    Dabei spielte man eine Custom-Firmware auf einen kleinen Wi‑Fi-Access-Point, der einen Webserver sowie Forum/Dateihosting enthielt. Die ursprüngliche Website ist tot, aber ein Fork-Projekt gibt es hier: https://www.jasongriffey.net/librarybox/
    Wenn man allerdings Uploads durch Nutzer erlaubt, macht schon der Gedanke Sorgen, welche Dateien dort landen könnten.

    • Ich habe früher einmal mit einem alten Asus-Access-Point eine PirateBox gebaut und war ziemlich enttäuscht.
      Die Leute hatten Angst, sich mit offenem Wi‑Fi zu verbinden, und weil es kein „kostenloses Internet“ bot, trennten sie die Verbindung meist sofort wieder.
      Leider ist auch das Fork-Projekt LibraryBox nicht mehr aktiv.
  • Ich würde gern die Liste der verbotenen Bücher sehen.
    Wenn man sie ohne eine der größten Social-Plattformen überfliegt, scheint dort nichts Interessantes zu sein, sondern nur Bücher, die man auch in der „Verbotene Bücher“-Ecke eines Mainstream-Buchladens sehen würde.
    Es wirkt wie eine Banalität des Denkens, der sinnvolle Vielfalt fehlt.

    • Die Liste ist hier: https://codeberg.org/rickoooooo/BannedBookLibrary/src/branch...
      Die Liste der „verbotenen Bücher“ ist kurz: Call of the Wild, The Adventures of Huckleberry Finn, The Adventures of Tom Sawyer, Women in Love.
      Wirklich erstaunlich und mutig.
    • Laut Artikel hat die Glühbirne nur 4 MB Speicher, und die Idee ist, dass jede Bibliothek in jeder Glühbirne ihren Ersteller widerspiegelt.
      Es gibt also keine einheitliche Liste; man kann hineinpacken, was man will.
  • Ich habe so etwas um 2012 herum auch schon als Pirate Box bezeichnet gesehen.
    Die Grundidee ist eine Box, die ein Wi‑Fi-Netzwerk und einen Webserver bereitstellt, getrennt vom größeren Internet, damit Menschen Dateien hoch- und herunterladen können.
    Im Grunde eine geografisch begrenzte digitale Tauschbibliothek.

  • Für jemanden, dem effiziente Software und Energieverbrauch wichtig sind, fällt auf, dass die Bilder im Artikel 5-MB-PNGs sind.

  • Android trennt gern automatisch die Verbindung zu Wi‑Fi-Netzwerken, die kein Internet bereitstellen.
    Um diese Funktion abzuschalten, muss man sich durch mehrere ziemlich obskure Einstellungen klicken.

    • Für alle, die es suchen: der Pfad ist Settings, Network and Internet, Adaptive Connectivity.
    • Wenn man auf einen HTTP-GET an irgendeine IP antwortet, kann man vortäuschen, dass Internet vorhanden ist.
      Als ich das zuletzt geprüft habe, verlangte die Portalerkennung des Telefons nicht einmal ein gültiges HTTPS-Zertifikat.
    • Ein Workaround könnte sein, das Gerät wie ein Captive Portal aussehen zu lassen, wie man es etwa bei Starbucks sieht.
      Wenn der Nutzer aufgefordert wird, auf „Sign In“ zu klicken, landet er direkt beim Dead Drop.
      Ich habe es allerdings nicht selbst ausprobiert und weiß nicht, ob das tatsächlich funktioniert oder ob korrektes DNS nötig wäre.
  • Ein gutes Beispiel dafür, wie weit man mit klaren Zielen, Leidenschaft und Neugier kommen kann, auch ohne großes Vorwissen.

  • Cool ist es, aber ich bin skeptisch bei der Aussage, dass es „schwer zu entdecken und unauffällig ist, weil es eine Glühbirne ist“.
    Es dürfte nicht schwerer abzuschalten sein als jedes andere öffentlich zugängliche Wi‑Fi-Gerät, und wenn man nach und nach Strom oder Geräte abstellt, sollte es sich finden lassen.

    • Man könnte einfach mit einem Wi‑Fi-Analyzer auf dem Handy herumlaufen und schauen, ob das Signal stärker oder schwächer wird.
      Moderne Enterprise-Access-Points haben außerdem Funktionen, um Geräte physisch zu lokalisieren, sowie automatische Warnungen bei nicht autorisierten Access Points.
      Letzteres wird allerdings oft ignoriert oder deaktiviert, weil es jedes Mal anschlägt, wenn jemand per Wi‑Fi Direct druckt oder einen Bildschirm überträgt.
    • Das stimmt schon, aber die Wahrscheinlichkeit, dass jemand ausgerechnet eine Glühbirne verdächtigt, scheint extrem gering.
      Besonders wenn sie wie eine ganz gewöhnliche Birne aussieht, die einfach in ihrer Fassung steckt — wer würde da an einen Wi‑Fi-Access-Point denken?
    • Neuer Designvorschlag: einen Batterie-Backup in den Computer einbauen und die Beleuchtung weiter über externe Stromversorgung laufen lassen.
  • Das braune Vergussmaterial könnte neben anderen Funktionen auch dazu gedient haben, Wärme von den Bauteilen abzuleiten.