{"id":1863,"date":"2018-02-10T15:48:43","date_gmt":"2018-02-10T13:48:43","guid":{"rendered":"https:\/\/einstein.amsterdam\/?page_id=1863"},"modified":"2018-02-14T21:17:09","modified_gmt":"2018-02-14T19:17:09","slug":"toon-hacked","status":"publish","type":"page","link":"https:\/\/einstein.amsterdam\/?page_id=1863","title":{"rendered":"Toon (hacked)"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/einstein.amsterdam\/wp-content\/uploads\/loadscreen_0.png\" alt=\"\" width=\"800\" height=\"480\" class=\"alignnone size-full wp-image-1899\" srcset=\"https:\/\/einstein.amsterdam\/wp-content\/uploads\/loadscreen_0.png 800w, https:\/\/einstein.amsterdam\/wp-content\/uploads\/loadscreen_0-300x180.png 300w, https:\/\/einstein.amsterdam\/wp-content\/uploads\/loadscreen_0-768x461.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><strong><br \/>\n###########################################################################<br \/>\nBefore you begin<br \/>\n###########################################################################<br \/>\n<\/strong><\/p>\n<p>Make sure toon is not connected to any network that&#8217;s in contact with<br \/>\nthe internet. Eneco (quby) can see every toon connected to its service<br \/>\ncenter. Big Brother is watching YOU!<\/p>\n<p>So: disconnect toon from any wireless network (invalidate the<br \/>\npassphrase, remove the SSID from toon, or remove the wifi chipset \ud83d\ude09 ).<\/p>\n<p>In the second step of the rooting process you will need to install an<br \/>\nssh client\/server. I have done this through a small (wired) router,<br \/>\nwith no WAN connection, and a private webserver.<\/p>\n<p><strong><br \/>\n###########################################################################<br \/>\nRooting Eneco&#8217;s toon<br \/>\n###########################################################################<br \/>\n<\/strong><\/p>\n<p>Requirements:<\/p>\n<p>1: 3.3V serial-to-USB cable, with separate header connectors for TxD,<br \/>\nRxD and GND (or a ttl-to-serial-adapter when you are using a native serial<br \/>\nport).<\/p>\n<p>2: A computer with serial terminal software like putty and a<br \/>\nfree USB port (or a free serial port).<\/p>\n<p>3: A small (metal) screwdriver.<\/p>\n<p>4: Eneco (quby) Toon.<\/p>\n<p>5: Proficiency in using vi (the basic text editor, available in all<br \/>\nUNIX-flavours).<\/p>\n<p>##### Opening the case and connection of the serial interface: #####<\/p>\n<p>Open the casing of toon to access its 14-pin I\/O header connector by<br \/>\ncarefully dislodging the PCB from the backing shell. Be careful not to<br \/>\nbreak the flat cables connecting the display.<\/p>\n<p>The white frame is clicked into the grey backing and can be removed by<br \/>\njust lifting it and gently retracting it from the backing. Use your<br \/>\nnails, not tools! The touchscreen\/display part can then be lifted and<br \/>\nput (a wee bit) aside. Be careful with the antennas. In newer toons<br \/>\nthey are glued to the grey casing, and easily torn.<\/p>\n<p>The PCB holding all the components is kept in place by a<br \/>\nfew plastic studs and can be dislodged easily. When done, the back of<br \/>\nthe PCB presents two connectors: one 2-pin connector for a 24V power<br \/>\nsupply (accessible from the outside), and a 2&#215;7 connector holding a<br \/>\nJTAG interface and a serial port. Logic high being 3.3V.<\/p>\n<p>Connect a 3.3V signal level serial-to-USB adapter to the serial port<br \/>\nof toon and open a serial console (e.g., hyperterminal or putty on<br \/>\nWindows, minicom on Linux, but there are many other options).<\/p>\n<p>Port settings: 115200 baud, 8N1.<\/p>\n<p>(See also domoticaforum.eu for wiring:<br \/>\nhttp:\/\/www.domoticaforum.eu\/viewtopic.php?f=17&#038;t=8743)<\/p>\n<p>This is the pinout (not necessarily completely correct, but works for me):<\/p>\n<p>JTAG:<\/p>\n<p>pin 1: RTCK brown 11<br \/>\npin 2: TRST red 3<br \/>\npin 3: GND orange 4<br \/>\npin 4: TCK yellow 9<br \/>\npin 5: GND green 6<br \/>\npin 6: TMS blue 7<br \/>\npin 7: SRST purple 15<br \/>\npin 8: TDI grey 5<br \/>\npin 9: Vt white 1<br \/>\npin 10: TDO black 13<\/p>\n<p>serial port (3.3V logic levels, ttymxc0, 115200 baud, 8N1):<\/p>\n<p>pin 11: RxD<br \/>\npin 12: ??<br \/>\npin 13: TxD<br \/>\npin 14: GND<\/p>\n<p>Make sure the component side of the PCB is accessible. Connect toon<br \/>\nto a power supply (boiler module + power adapter) and power it up.<\/p>\n<p>##### Entering (and editing) the boot loader: #####<\/p>\n<p>## By using the password ##<\/p>\n<p>The bootloader is accessed by entering the bootloader password when<br \/>\nthe boot loader is starting, and presents the prompt:<\/p>\n<p>Enter password &#8211; autoboot in 2 sec.<\/p>\n<p>Two boot loader passwords have been retrieved so far, and they depend<br \/>\non the bootloader version of your toon. The bootloader version is<br \/>\ndisplayed in the serial console immediately after toon (re)boots:<\/p>\n<p>U-Boot 2010.09-R6 (Mar 14 2012 &#8211; 11:15:10)<\/p>\n<p>CPU: Freescale i.MX27 at 400.168 MHz<br \/>\n&#8230; etc.<\/p>\n<p>These are the passwords that go with the u-boot versions:<\/p>\n<p>Bootloader version password<\/p>\n<p>U-Boot 2010.09-R6 f4E9J<br \/>\nU-Boot 2010.09-R8 3BHf2<\/p>\n<p>The password is case-sensitive, so, e.g., f is different from F.<br \/>\nEnter the password (terminated with a &lt;return&gt;-character) by<br \/>\ncopy\/pasting it into the serial console. U-boot will stop and present<br \/>\nits prompt:<\/p>\n<p>U-Boot&gt;<\/p>\n<p>Note that the password is not shown when you enter it. The (very<br \/>\nbasic) serial console of U-Boot only echoes what you enter _after_ the<br \/>\npassword has been entered and command has been redirected to the<br \/>\nserial interface.<\/p>\n<p>If, for whatever reason, you cannot enter the password properly, or<br \/>\nyou have a toon with yet another (unknown) password, you can revert to<br \/>\nthe U-Boot interruption method presented below, or dump the boot<br \/>\nloader image (contact me through PM). It&#8217;s not hard to find the boot<br \/>\nloader password in the image, but it takes too many steps to describe<br \/>\nhere. You will need JTAG hardware and software for this.<\/p>\n<p>## By shorting the NAND chip ##<\/p>\n<p>Enter the u-boot menu by briefly shorting the proper control pins on<br \/>\nthe NAND chip early on during boot-up (Short the pins when &#8220;checking<br \/>\ncrc&#8221; or similar is visible) A small metal screwdriver will do nicely<br \/>\nfor this purpose.<\/p>\n<p>This causes a flash memory checksum error and drops you to a u-boot<br \/>\nshell. For toon&#8217;s NAND chip, the pins are 8 and 9 (!CE and !RE, NOT<br \/>\nChip enable and NOT Read enable, search http:\/\/www.hackaday.com for<br \/>\ndetails). The NAND chip is the (only) samsung chip on the PCB.<\/p>\n<p>#### Editing the U-Boot environment #####<\/p>\n<p>After getting the U-Boot prompt (either way), this is what you get<br \/>\nwhen asking for printenv (bootloader version U-Boot 2010.09-R8, R6 is<br \/>\nvery similar):<\/p>\n<p>U-Boot&gt; printenv<br \/>\nbootdelay=2<br \/>\nbaudrate=115200<br \/>\nloadaddr=0xA1000000<br \/>\nbootdelay=2<br \/>\nmtdids=nand0=mxc_nand<br \/>\nmtdparts=mtdparts=mxc_nand:1M(u-boot)ro,512K(u-boot-env)ro,1536K(splash-image),3M(kernel),3M(kernel-backup),119M(rootfs)<br \/>\nmtdparts_kernel=mtdparts=mxc_nand:512K@0x00100000(u-boot-env)ro,1536K(splash-image),3M(kernel),3M(kernel-backup),119M(rootfs)<br \/>\nmem=128M<br \/>\nautoload=no<br \/>\nbacklight_brightness=50<br \/>\nbaudrate=115200<br \/>\nconsole=ttymxc0<br \/>\naddtty=setenv bootargs ${bootargs} console=${console},${baudrate}<br \/>\naddmtd=setenv bootargs ${bootargs} ${mtdparts_kernel}<br \/>\nnandargs=setenv bootargs ubi.mtd=4 root=ubi0:rootfs rw rootfstype=ubifs<br \/>\nboot_nand=run nandargs addmtd addtty addmisc; nand read ${loadaddr} kernel; bootm ${loadaddr}<br \/>\nboot_nand_backup=run nandargs addmtd addtty addmisc; nand read ${loadaddr} kernel-backup; bootm ${loadaddr}<br \/>\nbootcmd=run boot_nand<br \/>\nsplashimage=0x180000<br \/>\nethact=FEC<br \/>\nsn=xx-xx-xxx-xxx<br \/>\npn=6500-1400-1200<br \/>\nsoftware_compatibility=0<br \/>\nmanufacture_date=2014\/04<br \/>\nethaddr=aa:bb:cc:dd:ee:ff<br \/>\naddmisc=setenv bootargs ${bootargs} mem=${mem} lpj=999424<br \/>\nbootargs=ubi.mtd=4 root=ubi0:rootfs rw rootfstype=ubifs mtdparts=mxc_nand:512K@0x00100000(u-boot-env)ro,1536K(splash-image),3M(kernel),3M(kernel-backup),119M(rootfs) c4<br \/>\npartition=nand0,0<br \/>\nmtddevnum=0<br \/>\nmtddevname=u-boot<\/p>\n<p>Environment size: 1280\/131068 bytes<br \/>\nU-Boot&gt;<\/p>\n<p>Edit as follows (redefine addmisc, this is the last part of boot_nand,<br \/>\nby adding init (be sure to properly escape the $ and { }-signs with<br \/>\nbackslashes!) ):<\/p>\n<p>setenv addmisc setenv bootargs \\$\\{bootargs\\} mem=\\$\\{mem\\} lpj=999424 init=\/bin\/sh<\/p>\n<p>Not sure what lpj=999424 means, but in my case it should be there,<br \/>\notherwise toon won&#8217;t boot again. In older firmwares, the phrase<br \/>\nlpj=999424 is not present, should be no problem.<\/p>\n<p>Then resume the booting process of Toon by typing:<\/p>\n<p>run boot_nand<br \/>\nand press &lt;enter&gt;.<\/p>\n<p>At the end of the booting process, you will be dropped to a shell, and<br \/>\nyou can start editing whatever needs editing.<\/p>\n<p>##### Editing the boot scripts and passwd file: #####<\/p>\n<p>Add a serial tty to \/etc\/inittab; locate the following line in \/etc\/inittab:<\/p>\n<p># HCBv2 static stuff<\/p>\n<p>and edit (software version &lt; 3.0 (shockwave flash GUI), using vi):<\/p>\n<p># HCBv2 static stuff<br \/>\novpn:2345:respawn:\/usr\/sbin\/openvpn &#8211;config \/etc\/openvpn\/vpn.conf &#8211;verb 0 &gt;\/dev\/null 2&gt;&amp;1<br \/>\nflas:5:respawn:\/usr\/bin\/startflash &gt;\/dev\/null 2&gt;&amp;1<br \/>\n# add serial console access: (added, MR!):<br \/>\ngett:235:respawn:\/sbin\/getty -L 115200 ttymxc0 vt102<\/p>\n<p>or: (toon SW 3.0, qt GUI):<\/p>\n<p># HCBv2 static stuff<br \/>\novpn:2345:respawn:\/usr\/sbin\/openvpn &#8211;config \/etc\/openvpn\/vpn.conf &#8211;verb 0 &gt;\/dev\/null 2&gt;&amp;1<br \/>\nqtqt:245:respawn:\/usr\/bin\/startqt &gt;\/dev\/null 2&gt;&amp;1<br \/>\n# add serial console access: (added, MR!):<br \/>\ngett:235:respawn:\/sbin\/getty -L 115200 ttymxc0 vt102<\/p>\n<p>While you&#8217;re at it, comment out the openvpn line with a hash mark:<\/p>\n<p>#ovpn:2345:respawn:\/usr\/sbin\/openvpn &#8211;config \/etc\/openvpn\/vpn.conf &#8211;verb 0 &gt;\/dev\/null 2&gt;&amp;1<\/p>\n<p>By commenting out the openvpn command, toon no longer connects to the<br \/>\nservice center (and won&#8217;t upload anymore data). If you don&#8217;t have an<br \/>\nEneco account, that&#8217;s probably what you want. Otherwise, leave it as<br \/>\nit is.<\/p>\n<p>(for toon software 3.0 and later only:)<br \/>\nLocate the password file \/etc\/passwd and edit the line:<\/p>\n<p>root:DISABLED:0:0:root:\/root:\/bin\/sh<\/p>\n<p>to read:<\/p>\n<p>root::0:0:root:\/root:\/bin\/sh<\/p>\n<p>and save. Otherwise you won&#8217;t get in.<\/p>\n<p>##### Restoring the boot loader and accessing toon through a shell: #####<\/p>\n<p>After completing the addition of the serial tty to \/etc\/inittab (and<br \/>\nediting the password file) type reboot and you return to the normal<br \/>\nboot (runlevel 5), now with a login shell, on a serial console. Since<br \/>\nthe u-boot environment changes haven&#8217;t been stored to flash, the boot<br \/>\nsequence proceeds as before (without \/init\/sh).<\/p>\n<p>To quote Patrick Volkerding, from the Slackware set-up sequence:<\/p>\n<p>You may now login as &#8220;root&#8221;.<\/p>\n<p>(and do set a _strong_ password!, by typing the command: passwd<br \/>\nand following the steps of the passwd-program).<\/p>\n<p>Do not reassemble toon yet, you will need the serial connection to<br \/>\nopen the network ports to the outside world.<\/p>\n<p><strong><br \/>\n###########################################################################<br \/>\nMaking toon accessible from outside<br \/>\n###########################################################################<br \/>\n<\/strong><\/p>\n<p>Requirements:<\/p>\n<p>1: private network connection to a web server<br \/>\n2: dropbear installation package<br \/>\n3: serial console connection to toon<\/p>\n<p>To be able to access toon over the network, you should install an ssh<br \/>\nclient\/server. In embedded systems like toon, this is typically<br \/>\ndropbear. To get a working version of dropbear, you can build the quby<br \/>\nopenembedded tree from source. See<br \/>\nhttp:\/\/quby.nl\/opensource\/openembedded-qb2-toon-2012r1.tar.bz2 for<br \/>\ndetails. Part of the build is the compilation and packaging of<br \/>\ndropbear. It will end up in a file called<\/p>\n<p>dropbear_0.51-r7.0_qb2.ipk<\/p>\n<p>Put this file (temporarily) on a webserver, in its root, so you don&#8217;t<br \/>\nhave to look for it, and pick it up with wget:<\/p>\n<p>On toon:<\/p>\n<p>wget http:\/\/&lt;server_name&gt;\/dropbear_0.51-r7.0_qb2.ipk<\/p>\n<p>After download, install dropbear with:<\/p>\n<p>opkg install dropbear_0.51-r7.0_qb2.ipk<\/p>\n<p>Early 2016, the original dropbear package has been replaced with<br \/>\na newer one:<\/p>\n<p>dropbear_2015.71-r0_qb2.ipk<\/p>\n<p>This version resolves some issues with encryption methods no longer<br \/>\ndeemed safe in modern OS&#8217;es. It&#8217;s available from the &#8220;toon as a<br \/>\ndomotica controller?&#8221;-thread at domoticaforum.eu.<\/p>\n<p>### Modification of iptables (the linux firewall) ###<\/p>\n<p>To be able to access Toon through ssh or otherwise, the network ports<br \/>\nassociated with these services need to be opened in the firewall.<\/p>\n<p>Edit iptables.conf by issueing the command:<\/p>\n<p>vi \/etc\/default\/iptables.conf<\/p>\n<p>Edit after the part that starts with:<\/p>\n<p># These are all closed for Quby\/Toon:<br \/>\nMake this part look like this:<\/p>\n<p>-A HCB-INPUT -p tcp -m tcp &#8211;dport 22 &#8211;tcp-flags SYN,RST,ACK SYN -j ACCEPT<br \/>\n-A HCB-INPUT -p tcp -m tcp &#8211;dport 7080 &#8211;tcp-flags SYN,RST,ACK SYN -j ACCEPT<br \/>\n-A HCB-INPUT -p tcp -m tcp &#8211;dport 80 &#8211;tcp-flags SYN,RST,ACK SYN -j ACCEPT<\/p>\n<p>On newer firmware (3.0.32 and later) you will need port 10080 instead of 7080:<\/p>\n<p>-A HCB-INPUT -p tcp -m tcp &#8211;dport 22 &#8211;tcp-flags SYN,RST,ACK SYN -j ACCEPT<br \/>\n-A HCB-INPUT -p tcp -m tcp &#8211;dport 10080 &#8211;tcp-flags SYN,RST,ACK SYN -j ACCEPT<br \/>\n-A HCB-INPUT -p tcp -m tcp &#8211;dport 80 &#8211;tcp-flags SYN,RST,ACK SYN -j ACCEPT<\/p>\n<p>Explanation of the ports 80 (http) and 7080\/10080 (some private<br \/>\nserver) will follow in the forum thread on toon.<\/p>\n<p>Test, by opening a secure shell connection to another server:<br \/>\nssh &lt;user&gt;@&lt;machine&gt;<\/p>\n<p>and verify its functionality. The dropbear package installs an ssh<br \/>\nclient (ssh), server (sshd) and secure copy (scp) application on<br \/>\ntoon.<\/p>\n<p>If, for some valid reason, you cannot build dropbear and\/or put it on<br \/>\na webserver, contact me and I&#8217;ll upload the package to my own small<br \/>\nwebserver, so you can pick it up there. Building your own version of<br \/>\nthe quby openembedded tree is highly recommended, though. It also<br \/>\nbuilds a bunch of analysis tools like gdb and strace. Handy for<br \/>\ntesting all kinds of stuff.<\/p>\n<p>After having installed dropbear and testing its functionality (both<br \/>\nways: from toon to the outside world, and from the outside world into<br \/>\ntoon), you can reassemble toon.<\/p>\n<p><strong><br \/>\n###########################################################################<br \/>\nHardening toon (complete exclusion of Eneco, for non-Eneco users only)<br \/>\n###########################################################################<br \/>\n<\/strong><\/p>\n<p>Requirements:<\/p>\n<p>1: toon with dropbear installed<br \/>\n2: connection with private network (no WAN)<\/p>\n<p>When toon is set up completely, in the tab &#8220;Internet&#8221; toon states to<br \/>\nbe connected to the service center. The service center consist of a<br \/>\nbunch of websites and other services, accessed through a VPN tunnel,<br \/>\nmanaged by Quby, under the flag of Eneco. Each toon connects to the<br \/>\nservice center through an OpenVPN tunnel, with TLS security<br \/>\nenhancement. Even if you do not have an Eneco account, toon will send<br \/>\ndata to Eneco on a regular basis. According to Eneco, no energy usage<br \/>\n(gas and electricity) data are uploaded &#8211;which is true&#8211; but boiler<br \/>\nsettings are transmitted every hour. No idea why, by the way. Besides<br \/>\nthrough the OpenVPN connection mentioned earlier, toon phones home<br \/>\nwith ping and the chrony daemon.<\/p>\n<p>##### Disabling OpenVPN: #####<\/p>\n<p>The OpenVPN connection is disabled by simply not starting OpenVPN,<br \/>\nthrough commenting out the openvpn line in \/etc\/inittab:<\/p>\n<p>#ovpn:2345:respawn:\/usr\/sbin\/openvpn &#8211;config \/etc\/openvpn\/vpn.conf &#8211;verb 0 &gt;\/dev\/null 2&gt;&amp;1<\/p>\n<p>This shuts off openvpn effectively. In the internet tab you will now<br \/>\nget the message &#8220;Connected to the internet&#8221; or something along these<br \/>\nlines. You will also get a warning message that internet has not been<br \/>\nset up correctly or setup has not yet been completed. You can safely<br \/>\nignore these warnings.<\/p>\n<p>After toon has been rebooted (don&#8217;t do that yet!), if you have a toon<br \/>\nwith qt-gui, you can suppress the warnings issues by toon, about not<br \/>\nbeing able to reach the service center, as follows (thank you, al_n!):<\/p>\n<p>Locate the file<br \/>\n\/HCBv2\/qml\/apps\/internetSettings\/InternetSettingsApp.qml, and look for<br \/>\nthe following code (line 365 or thereabouts):<\/p>\n<p>onNotificationReceived : {<br \/>\nvar statemachine = message.getArgument(&#8220;statemachine&#8221;);<br \/>\nif (statemachine) {<br \/>\nvar prevSmStatus = smStatus;<br \/>\nsmStatus = parseInt(statemachine);<br \/>\n\/\/ add the following two lines of code:<br \/>\n\/\/ added by al_n (20151220):<br \/>\nif(smStatus == _ST_INTERNET) {<br \/>\nsmStatus = _ST_TUNNEL;<br \/>\n}<br \/>\n\/\/<br \/>\n\/\/ continuation of original file:<br \/>\n\/\/ Trigger the internetStateChange signal, used by the internet settings overview screen<br \/>\ninternetStateChange(smStatus);<\/p>\n<p>&#8230;. etc.<\/p>\n<p>This will interpret a working internet connection as a connection to<br \/>\nthe service center, and thus warnings are suppressed.<\/p>\n<p>##### Disabling the time service access to time.quby.nl: #####<\/p>\n<p>Toon keeps track of time through the chrony daemon. To set the clock<br \/>\nat startup, and to keep it synchronized with the rest of the world,<br \/>\ntoon uses the time server of quby: time.quby.nl. This server name is<br \/>\nset in \/etc\/chrony.conf<br \/>\nLocate the following two lines in chrony.conf:<\/p>\n<p>server time.quby.nl minpoll 8<br \/>\nand<br \/>\ninitstepslew 30 time.quby.nl<\/p>\n<p>and replace the server name by another time server. I use<\/p>\n<p>wwv.nist.gov instead of time.quby.nl<\/p>\n<p>since it has the same (short) server name length (you never know if<br \/>\nand how the chrony code was hacked by quby), is accessed by many clients<br \/>\nacross the globe, and has proven to have a good level of stability<br \/>\nover many years of service.<\/p>\n<p>Note: the time protocol (tcp\/udp port 37) is something else than the<br \/>\nnetwork time protocol (ntp, udp port 123). You will need a time<br \/>\nserver, not an ntp-server.<\/p>\n<p>##### Disabling pinging quby.nl: #####<\/p>\n<p>Toon pings the quby ping server every so many seconds. This is done in<br \/>\n\/HCBv2\/sbin\/hcb_netcon. The ping server address is unfortunately<br \/>\nhard-coded in hcb_netcon, so to disable this, you will need to reroute<br \/>\nping requests to another machine. You can&#8217;t switch it off easily.<\/p>\n<p>To reroute, edit the file \/etc\/hosts.template and add the line<\/p>\n<p>127.0.0.1 ping.quby.nl<\/p>\n<p>at the end of the file, and save it.<\/p>\n<p>Test whether your rerouting works by pinging quby:<\/p>\n<p>eneco-001-xxxxxx:\/# ping ping.quby.nl<br \/>\nPING ping.quby.nl (127.0.0.1): 56 data bytes<br \/>\n64 bytes from 127.0.0.1: seq=0 ttl=64 time=1.108 ms<br \/>\n64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.738 ms<br \/>\n64 bytes from 127.0.0.1: seq=2 ttl=64 time=0.658 ms<\/p>\n<p>This indicates that the ping requests for quby are redirected to<br \/>\nlocalhost (IP 127.0.0.1). Thanks, RDNZL, for pointing this out!<\/p>\n<p>Reboot toon for good measure. Now you can go edit the service<br \/>\nInternetSettingsApp.qml file, as explained above.<\/p>\n<p>All done. You have now severed all connections between toon and Eneco<br \/>\n(quby), and can safely connect it to your wireless network again.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>########################################################################### Before you begin ########################################################################### Make sure toon is not connected to any network that&#8217;s in contact with the internet. Eneco (quby) can see every <a class=\"mh-excerpt-more\" href=\"https:\/\/einstein.amsterdam\/?page_id=1863\" title=\"Toon (hacked)\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/pages\/1863"}],"collection":[{"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1863"}],"version-history":[{"count":6,"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/pages\/1863\/revisions"}],"predecessor-version":[{"id":1921,"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/pages\/1863\/revisions\/1921"}],"wp:attachment":[{"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}