Ich habe in Shenzhen ein Fake iPhone 17 gekauft. Ein CCIT X17 Pro Max 5G. In diesem Live Thread will ich Hardware, Software und Netzwerkverkehr angucken, zerlegen und analysieren. Mal sehen welche Überraschungen das Gerät für uns auf Lager hat 🧵
(Live Thread heißt: Ich schreibe größtenteils während ich das mache. Alles was ich schreibe ist ein Zwischenstand und nicht tief recherchiert, kann also Fehlannahmen enthalten. Außerdem können länge Pausen dazwischen sein. Tage. Wochen?)
Das Gerät ist von CCIT. Dass man ein richtig gutes Gerät erwischt hat, erkennt man daran, dass man es weder auf AliExpress noch auf Alibaba.com finden kann.
Zielmarkt von CCIT scheint aber auch eher Middle East und Afrika zu sein. Es gibt nicht viel infos im Netz darüber, aber von dem was ich finden konnte wird das gerät dort für so um die 100€ verkauft. Ich habe in Shenzhen irgendwas zwischen 50€ und 60€ dafür bezahlt.
Fangen wir kurz mit der äußeren Hardware an. Die Maße entsprechen wirklich sehr genau einem iPhone 17 Pro Max. So sehr, dass die mitgelieferte Hülle einem echten iPhone wie angegossen passt. Selbst die Platzierung der Buttons stimmt genau. Der einzige Unterschied ist, dass der SIM-Slot an einer anderen Stelle ist. (Blau Apple, Orange CCIT)
Haha, sie haben hier unten so fake Pentalobe Schrauben ins Gehäuse geformt, weil beim iPhone dort halt welche sind.
Ein bisschen lustig wird es bei den Kameras. Beim näheren hinsehen sieht man, dass zwei der drei Linsen einfach blaue Plastikblobs hinter Glas sind. Ich bin gespannt wie das von innen aussieht, aber ich habe ein bisschen Angst, beim öffnen das Display zu brechen, deswegen hebe ich mir das bis zum Schluss auf.
(Bild in direkter Sonne aufgenommen und etwas überbelichtet, damit man es besser sieht)
Also in der Theorie weiß ich natürlich wie man so ein Telefon öffnet und habe das schon sehr oft gesehen. Ich habe sogar mal in einem Unternehmen gearbeitet, dessen Business es war Smartphones zu reparieren. Ich bin der festen Überzeugung, dass ich die einzige Person in der ganzen Firma war, die nie ein Smartphone repariert hat. Also selbst Menschen in Sales und Buchhaltungsmenschen mussten das am ersten Arbeitstag einmal machen. Nur ich irgendwie nicht. 🤷‍♀️
Kommen wir zur vorderen Kamera. Hier wird’s nämlich wirklich wild: Das Kamera Cut-out ist wie beim Original zweigeteilt. Die Kamera sitzt aber im linken, breiteren Cut-out, wo beim Original die FaceID-Sensoren sitzen. Und das rechte Cut-out ist einfach nur ein Donut und in der Mitte davon ist wieder Display, welches softwareseitig die ganze Zeit eine Kameralinse anzeigt. 🤯
Das muss man sich mal überlegen wie viel Engineering da reingeflossen ist, um den exakten Look vom iPhone zu reproduzieren. Also nicht nur, dass das Display an der Stelle softwareseitig eine Linse anzeigt. Nee, da wurde tatsächlich um diesen Teil noch ein Donut ins Display geschnitten.
Also ich wusste nicht mal dass das geht.
Ah Moment. Vielleicht ist das gar nicht komplett softwareseitig und da liegt eine Lila Folie über der Display-Stelle. Ich habe Zustände wo das Hintergrundbild durch die Kamera durchscheint, aber an der Stelle lila eingefärbt ist. Evtl. ist der Ring dann auch nur aufs Display geklebt?
Kommen wir zur Software: Es ist natürlich ein Android und der Homescreen wurde wie iOS nachgebaut. Mit den iPhone 17 Hintergrundbildern. Aber Moment, die Icons sind die aus iOS 18, das iPhone 17 kam mit dem neueren iOS26. Das gibt Punktabzug!
Hinter den Icon stecken die Apps wie man sie erwarten würde. Hinter dem Safari Icon der Chrome, hinter dem AppStore Icon der PlayStore usw.
Lustig ist aber das Podcasts Icon, auf dem sich ein FM-Radio öffnet, für das man die Kopfhörer als Antenne einstecken muss. Das habe ich auch lange nicht mehr gesehen.
Ich habe mir die vordere Kamera/Display gerade noch mal in Sonnenlicht angeguckt. Das sieht wirklich aus wie einfach abgeklebt. Dann ist es wahrscheinlich doch nur ein normales Display mit Punshhole für Kamera (die damit auch wie bei diesen Displays üblich zentriert liegt). Macht bei so nem günstigen Gerät auch mehr Sinn auf schon vorhandenen Komponenten zu setzen. An die kommt man evtl. auch günstig, weil sie von der Produktion älterer Geräte einfach übrig sind.
Die Apps auf dem Gerät sind dann alles Standard Apps und nicht noch mal besonders gethemed. Bis auf die Settings App, die ist ein kompletter iOS Nachbau. Aber auch nur in der ersten Ebene. Dahinter sieht alles wieder wie android aus.
Das General Menü verrät dann auch, dass ein Android 15 auf dem Gerät läuft (immerhin!) und ein Mediatek MT6762 verbaut ist. Der ist von 2018 und damit dann doch schon ganz schön alt. Und vor allem unterstützt er kein 5G, was der name des Geräts ja ein bisschen impliziert.
Das Menü behauptet weiter unten dann auch, dass das Gerät 10 CPU Cores hätte und 8GB RAM, dabei hat der MT6762 nur 8 Cores und unterstützt maximal 6GB RAM, wenn ich die Spec richtig verstanden habe. Das sagt vielleicht auch wie viel Glauben wir den 256GB Storage schenken sollten. Die 1440x3200 Pixel zähle ich jetzt nicht nach.
Vielleicht noch erwähnenswert: Der Fingerabdrucksensor. Der liegt auf dem Kamera Button und sie haben für den Einrichtungsdialog dieses tolle Rendering von dem Device eingebaut. Da ich im ÖPNV weiterhin mit Maske unterwegs bin, ein Feature, was sich Apple gern abgucken könnte.
Da wir jetzt wissen, dass ein Mediatek SoC verbaut ist, will ich einen Trick ausprobieren, den ich von @robbi5 gelernt habe. Es gibt nämlich dieses Tool https://github.com/bkerler/mtkclient, mit dem es möglich ist den kompletten Flash von Mediatek Geräten komplett zu dumpen.
GitHub - bkerler/mtkclient: Mediatek Flash and Repair Utility

Mediatek Flash and Repair Utility. Contribute to bkerler/mtkclient development by creating an account on GitHub.

GitHub
Ich habe MTKClient tatsächlich zum laufen bekommen. Und es funktioniert! Ich kann die Partitionen vom Gerät laden. Macht mir jetzt eher den Eindruck als wenn das Device nur so 32GB Speicher hat.
Muss erst mal Bubble Tea machen und trinken. Geht später™ weiter.
So, es geht weiter. Das Auslesen vom Flash hat gestern geklappt. Jetzt habe ich hier so ne Reihe an Partitionsdateien. Die userdata und die super partition sind die größten und müssten auch die interessantesten sein. Die userdata partition dürfte aber verschlüsselt sein.
Habe erst die super Partition mit binwalk extrahiert, aber habe gerade noch das Tool https://github.com/codefl0w/unsuper gefunden. Da kommen drei .img files raus die ich dann schön mounten kann. Erscheint mir gerade noch ein bisschen sauberer.
Jedenfalls geht jetzt das wilde Rumgewühle los. Ich weiß noch nicht so richtig was mein Ziel dabei ist, ich weiß auch nicht so genau wonach ich suche und was ich hier überhaupt tue, aber vielleicht haben sie ja wieder ein Musikvideo für uns versteckt.
Ah in product/overlay liegen die apks für die fake cutouts. Die Grafik von der Kamera hab ich darin aber auch nicht gefunden. der jadx output war sehr schmal.
Hab noch kein Musikvideo gefunden, aber das Video mp4.mp4 mit dem tollen Aufmacher "Taste of Ultra High Definition". Es hat eine Auflösung von 1280 x 720. Darin ganz viel Video von Essen was zubereitet wird. Ich erspare euch das mal, weil da ist mir zu viel Tier zu sehen. Aber diese Nachtische die sie da zeigen sehen schon ganz lecker aus. Ich glaube ich habe noch Früchte im Kühlschrank, kleinen Moment bitte.
Da ist noch ein anderes Video in der Firmware. Eine Werbung für ein mindestens 15 Jahre altes Smartphone eines anderen Herstellers. Das besondere Daran: Die Frau in dem Video ist Jolin Tsai, meine absolute Lieblingskünstlerin🤯
Das Problem: Ich bin mir ziemlich sicher, dass im Hintergrund ein Song von ihr ist, den ich auch kenne und schon hunderte mal gehört habe. Ich komme nur einfach nicht darauf welcher. Habe jetzt schon das komplette "Myself" Album durchgehört, was ungefähr aus der Zeit ist.
Ich weiß halt nicht mal genau welches Koobee Telefon das ist. Es gibt zu den alten Koobee Telefonen echt wenig Infos im Netz. Es sieht auf jeden Fall anders aus als das Koobee A106, was deren erstes Telefon von 2011 ist. Es sieht dem S306 ein bisschen ähnlich, ist es aber auch nicht. Nicht mal auf Baidu Baike ist es gelistet.
Dort gab es aber noch mal die Bestätigung, dass Jolin Tsai wirklich das Werbegesicht für koobee war/ist.
Der Grund warum ich wissen wollte von wann das Telefon ist, ist natürlich um zu wissen auf welchen Alben ich nach dem Song suchen musste. Dachte erst das Telefon ist von 2011, aber ich habe jetzt noch mal auf das Telefon im Video geguckt. Da steht auf dem Display ja "Mittwoch, 11. Juli". Und nach einem Blick in den Kalender stellte sich raus, dass der 11. Juli in 2011 ein Montag war. Aber 2012 war es ein Mittwoch. Also kann der Song auch von dem Album "Muse" sein. Muse ist eh das bessere Album!
Aber erst mal wieder zurück zum CCIT iPhone Clone. Vorhin war das Telefon leer und ich habe mal die Chance genutzt den beworbenen 6000mAh Akkukapazität etwas auf denn Grund zu gehen. Nachdem es 10,6Wh rein geladen hat, war das Telefon voll. Wenn ich mich nicht verrechnen habe komme ich da bei 3,7V nur auf etwa 2800mAh. Davon muss man bestimmt noch irgendwelche Ladeverluste abziehen.
Bin ein bisschen überrascht wie wenig vorinstallierte Apps auf dem gerät sind. Nur Facebook, Whatsapp und Tiktok Lite.
Bisher nix verdächtiges im flash dump gefunden. Aber wie gesagt habe auch nicht so mega viel Ahnung wonach genau man gucken würde und auch gerade keine Lust mehr. Glaube es wird eher Zeit dem Gerät dann doch mal Netz zu geben.
Ich will natürlich ab dem ersten Moment, ab dem das Gerät Netz hat in den Traffic gucken. Dafür nimmt man gern Tools wie burp, caido oder mitmproxy. Die konfiguriert man dann im android als HTTP Proxy. Das Problem daran: Viele Applikationen ignorieren die Einstellung und man bekommt auch nur HTTP-Traffic mit.
Um den Entgegenzuwirken hat mitmproxy ein super Feature: Den wireguard Mode.
Im Wireguard mode wirft mitmproxy einen QR-Code mit wireguard config raus. Mit der Wireguard App auf dem Phone kann man den mitmproxy dann als VPN konfigurieren, was dazu führt, dass der komplette traffic aus dem Telefon durch mitmproxy geschoben wird.
Um dem Telefon vorher kein Netz zu geben habe ich wireguard per adb installiert. Mal schauen ob es klappt. Um Zertifikate kümmer ich mich später, aber DNS sollte ich dann ja schon mal sehen.
Das was an DNS-Requests rum fliegt scheint erst mal in Ordnung zu sein. Eigentlich alles Google Domains.
Auch n bisschen wild, dass irgend eine Google App, ich schätze Chrome, einen Request in Plain HTTP ohne TLS macht. "http://clientservices.googleapis.com/chrome-variations/seed?osname=android&channel=stable&milestone=110"
Insgesamt sieht das Android ziemlich sauber aus. Also deutlich sauberer als bei so einigen Xiaomi Phones die ich habe. Ich habe gerade auch noch mal geschaut was der Universal Android Debloater ng (https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation) so findet. Und bis auf die angesprochenen 3 Socialmedia Apps tauchen da nur normale Android Services und Mediatek Tools auf.
GitHub - Universal-Debloater-Alliance/universal-android-debloater-next-generation: Cross-platform GUI written in Rust using ADB to debloat non-rooted Android devices. Improve your privacy, the security and battery life of your device.

Cross-platform GUI written in Rust using ADB to debloat non-rooted Android devices. Improve your privacy, the security and battery life of your device. - Universal-Debloater-Alliance/universal-andr...

GitHub
Ich dachte erst das Gerät hätte NCF, weil die STNFCDta App drauf ist. Aber die Crasht wenn man sie aus dem EngineerMode starten will und reißt den Mode auch gleich mit runter. NFC Tools sagt auch nein.
In den Screenshots kann man auch schön die Fake-Kamera sehen.
@ubahnverleih ist aber nicht diese Wifi Portal Erkennung, oder?
@utzer nope das ist connectivitycheck.gstatic.com
@ubahnverleih @utzer http://connectivitycheck.gstatic.com/generate_204 um genau zu sein und sie prüfen da auch tatsächlich ob http code 204 zurückkommt

@ubahnverleih "Chrome Variations is the framework used to roll out or roll back individual Chrome features, and to ensure they’re working as intended."

huh, weird dass das plain http ist

@HorayNarea im response standen auch URLs und so drin. Glaube wenn du das als attacker response manipulieren kannst, kannste bestimmt n bisschen Unsinn machen. Aber keine Ahnung vielleicht ist auch noch ne Signatur oder so drauf
@ubahnverleih ja hatte ich auch kurz angeguckt, ohne jetzt tiefer reingefühlt zu haben hatte ich den eindruck das ist ein großer blob protobuf mit signatur dran
@ubahnverleih protobuf decoder sieht zumindest halbwegs valide aus und nicht wie nur zufällig sauber dekodiert und es hat ganz am anfang einen sehr nach "irgendwas signatur oder anders kryptografisch relevantes"-aussehende String
@HorayNarea @ubahnverleih Vermutlich für den fall das sie irgendwas mit tls kaputtmachen und nen feature flag zurückrollen können?
@ubahnverleih So verkleinert sieht das aus wie Endlospapier mit grün weißen streifen.
@ubahnverleih das wäre auch guter Einsatz für den gl.inet Router gewesen... Dem kannste das mitmproxy wireguard konfigurieren, das phone in dessen wifi hängen und zack geht absolut alles immer durch dein mitm
@ubahnverleih spannend. Dieses Uhrenwidget war auch auf dem HTC Desire Z... Hach, gute Hw-Keyboardzeit
@ubahnverleih was macht denn die DisplayCutoutEmulationWaterfall?
@metaphil hab ich auf die Schnelle nicht rausbekommene.
@ubahnverleih tendenziell sollte system idealerweise sehr langweilig sein und nix custom enthalten. Wenn man sich an Android Spielregeln hält, gehören alle Anpassung nach vendor (oder zur Not vielleicht auch in ein system_ext falls es existiert).
Wenn das vendor image irgendwo hinlegen könntest, wäre ich neugierig.
In /vendor/etc/init schauen, was da an phishy aussehenden Dingen rum liegt bzw, was sich in /vendor/bin tummelt, im idealen Android System sollte da nicht viel außer HALs/Treibern liegen.
@ubahnverleih um das super.img in etwas mountbares zu verwandeln kann ich https://github.com/codefl0w/unsuper empfehlen.
GitHub - codefl0w/unsuper: The fastest Android super.img partition dumper ever, written in Python

The fastest Android super.img partition dumper ever, written in Python - codefl0w/unsuper

GitHub
@mxk ah ja hatte ich auch gerade gefunden.
@ubahnverleih Tapioka?
@schmittlauch new fruchtgeschmackbobas. Mag tapioka nicht so besonders, auch wenn das in Taiwan besser war als das was ich hier so bekam