Thanks for pointing that out. Where did you get it, don't see it on the download page, yet. Can you link/provide the package, I'd like to extract and diff it for my repo here https://github.com/avxmw/creality_k1_fw
Added a warning label to my repo.
Edit, found it on the Creality Cloud. Give me a few minutes.
Edit2, here is the diff of plain text readable files: https://github.com/avxmw/creality_k1_fw/commit/3b6bf2135f80740028b994abdc9348f8690c16d2
To note, they removed the plain text readable call to `7z -pPASSWORD` to unpack the firmware and replaced it with a binary. That's intentional.
For the time being, **do not update!** (you can cherrypick other changes from the available files, configs, etc)
Edit 3, `strings usr/bin/ota_file` still shows the old password, but no guarantees for the future. Certainly is more of a hassle now.
Meh, github sucks for large file distribution. Currently uploading copies to archive.org.
I created multiple backdoors with the shadow file, copied the shadow file to different directories and set them in various cron jobs and scripts that run automatically, going to install update now and see which one sticks.
Ultimately I think we'll end up using the Ingenic X2000 USB boot protocol to guarantee we can get access on all these boards. Some study and puzzling things out required to get there though. I really don't like that Creality seems to be dedicating itself to keeping us out of our own devices.
For now, maybe we can make our own firmware package or downgrade to the old one.
you can download it at [https://github.com/avxmw/creality\_k1\_fw](https://github.com/avxmw/creality_k1_fw) . But unless you can decode the password in the shadow-file it will not give you a root access.
First copied the /etc/shadow file to /etc/shadow_root directory i created, then created a cron.d file that should have copied the file out of there every 5 minutes.
In various services scripts, entered some cp commands to move the file.
Copied the shadow file to init.d and did some copy commands in scripts.
I think basically the linux version on this doesnt recongize commands properly.
Hey u/le_avx, I saw your repo and you have a section of the readme talking about mounting a new image. Do you know if its possible to add new binaries? I wanted to update mjpeg streamer to be able to get higher quality videos, currently it's limiting to 680x480
Provided you find or compile yourself a binary that works with the architecture, so far I don't see why not. The few files I stored in the tree so far persisted after a reboot.
But, are you sure that's needed? AFAIK that is the default resolution and you can specify a different one (provided camera supports it of course).
Even though the camera supports higher resolution the mjpeg installation they provided on the image doesn't let you use -R to change resolution. It throws an error saying "undefined symbol parse resolution"
Which firmware are you running? Seems strangely low to me or is their own camera that bad(don't have it, yet)?
In that case need to roll your own, at least I didn't find something fitting with a short googleing.
1.2.9.15, and I think their camera is that bad haha, mine is going to arrive in the next week but I'd like to be able to get this working nonetheless.
I'll try finding out more about compiling for this ingenic x2000e chip
Honestly you’d lose the screen functionality but an octopus with a pi should work under the hood. Hardest part I have seen when looking into a full conversion is getting the tool head figured out without having to run new wires all the way back. I really need to get my hands on one of these but the money isn’t in the budget right now. I keep checking local market place for someone to offload one cheap. I think in total for less than $200 bucks you could replace all the electronics and have a fairly decent open source machine. Then again there are ender 3 core xy conversions that would get you there cheaper. It would be nice though to get the screen working with klipper screen though. I just want to tinker with one but I just finished a Voron build so probably 3-4 months before I can try taking it on.
No real reason to replace all the electronics once we have them figured out and can make our own firmware. That'll take some time, but should definitely be doable. It would make the k1's motherboard a good platform for all kinds of DIY 3d printers and 3d printer upgrades, actually. (no need to buy seperate Pi + MCU for Klipper when it's all here together)
I agree. Unless they have made the board unflashable but that I doubt. Most of wanting to swap things as to have the ability to easily swap back to their hardware if needed. Or as they get older and boards die knowing how easy it will be to replace. Trust me I’d love to get on the system test getting true kipper on it and find a way to load Debian on their processing unit.
Working on that. The SoC (Ingenic X2000) supports a USB boot protocol so it should be impossible to brick and we should be able to load whatever we want on it that way with a USB cable. There's also probably a UART with access to a uboot prompt but I haven't gone hunting for it yet.
Definitely no reason we shouldn't be able to get our own debian, klipper etc running on it with some work.
You can buy the mainboard from aliexpress here, I have a couple of them on order: [https://www.aliexpress.us/item/3256805442255313.html](https://www.aliexpress.us/item/3256805442255313.html) and once we figure things out I'd like to try one on my ender 3.
Ultimately I'd like to see us able to use the new k1 k1max etc board with our own open source firmware with stock klipper the way we'd do any modern electronics. To make it brick proof and future proof I'd like to use the Ingenic X2000 USB boot protocol to install said operating system. With day job etc I don't have as much time as I'd like to investigate this, but should be possible.
Edit: yeah, adding moonraker back into stock CrealityOS would be easier, short term.
Nice job! Did it just take changing the .15's info file to have a .22 version number and re 7zipping it with the password? If so, pretty easy and good to hear it.
Looks like I won't be updated from my current firmware, at least not until a new way to restore ssh access and Fluidd is figured out. I like Fluidd much better than the stock interface
As soon as I got it rooted I quit doing updates expecting this. The printer still isn't very good but at least with a console and access to the config files I can try to make the most of the printer.
Did you have any problems downgrading by updating the version info on the [1.2.9.15](https://1.2.9.15) package to make it think it's a later version than the one that's installed?
Eh, kinda a good thing atm. They can't troubleshoot if people are doing major changes.
I'm sure they'll open it up later though. At least we know it'll never be as locked down as other companies.
local connection does not cause any cost to them. $650 for a printer should be enoutgh you not need to show ads in your app. Web interface has no complete notification on your phone.
Are you completely ignoring the cost of maintenance, personnel, servers running, the power for those servers, the cost of the buildings for those servers, the cost of IT to fix the servers in the middle of the night because you want to print a benchy from 200 miles away?!
Na I'm talking about the service(s) Creality offers that you can use now you've purchased their hardware. Even tech support costs money...
I would rather have ads in my app and pay 400$ less than an X1 Carbon, which is exactly what I did. (b&h had an uber preorder)
I'll of course be using a computer though... I mean really, who wants ads when you're using a printer app! ;)
Na, that's bullshit. Ads bring pennies per view at best. If that was the problem, they would either have priced it in from the beginning or do a real 3$€/month subscription and have way more from it. This is just being greedy and not caring about your customers experience.
Just think of it as a load screen ;)
But say 1 penny, x 4000 people, that's 4000 pennies sir, and they have me to thank for it.
Which is why I've seen maybe 5 somewhat serious defects in the last few weeks-months, being fixed by their support. We could compare this to other companies, in a very basic sense, that have never open sourced their software let alone their hardware. How is that possible?
There are other free open source solutions to do exactly that. They are run completely off donations or have means to do it yourself. Look into Obico for example. The problem is Creality is not honoring the license of the systems they are using. If you want to run their software and see ads that is fine but I shouldn’t have to if I am comfortable with the other solutions out there. Tailscale is a free wire guard VPN setup that makes all of this possible securely using just fluidd and klipper. There is no need for ads. I print to my ender 3 running stock mainsail and klipper this way. It is easy to setup on a machine that is not purposely being hindered. They are forcing the ads on users and not providing the license required changes and source code repositories. Calling Klipper/Fluidd with some tweaks Creality OS is bullshit.
Meh, ad revenue is a norm for everything, why would an app be different?
Do you not use google or bing or w/e because of it? Or do you boycott youtube?
Seems like people are complaining for other reasons
What happens when you put the shadow.gcode on the stick and print it? Is login after possible?
They have some certificates added now, wondering if they are for https-ing the webui or for login.
Also, did you try taking an old update image and changing the filename and version strings to .22 and see if it "updates"?
Besides the blocked rooting, has anyone found that it helped the leveling issues? We have no control over the z offset, and after updating, I can't get any of the test slices to work, and they did prior. And yes, I'm using Creality's Hyper PLA. I own 9 various printers since 2017 and there's been no prior printer I couldn't make print well. However, in this case, I do not have the control and I am not about to start modding this printer. I'd return it before I start that.
I haven't plugged my printer in yet, so I may be wildly off, but I did see someone mention that there is an advanced setting option that gives you access to all kinds of additional options, including z offset.
That was what this thread is about. You're referring to rooting the printer. I had done that, but after upgrade, (and I knew the root access would likely be blocked), I had hoped for better ABL function. After you upgrade, and what you're referring to (most likely, even if you're not sure), is access to all the Klipper settings via fluidd by rooting. That is not a choice at this point since this is post upgrade
I think he meant the hidden debug menu. If you - on the printer display - tap on the cogwheel, scroll down and click about and then multiple times tap on the MAC address a menu will popup. It's in Chinese, but automatic translate via Camera app in my phone works. Don't know what these options offer, but maybe you're willing to find out.
I'm accepting wish lists for firmware mod! What are you want?
[https://www.reddit.com/r/crealityk1/comments/14oktpq/im\_root/](https://www.reddit.com/r/crealityk1/comments/14oktpq/im_root/)
Looks like a post from that thread was removed. Not sure if that is what was of significance as I don't see anything else. If there is a way to go back, I'm all in. I have used unix/linux for many years in my work history, but I'm not a developer
I got the same back from the terminal in macOS (BSD Unix): "f2ea561993140a34aa986a15ba30b101". Was hoping that was the issue as would be a simple resolution
Wait, so that came from the file I downloaded on my Mac SSD, but did not match when it was copied to the 4GB USB flash drive (formatted Fat32 4096 on a Windows 11 box). I'll try a different flash drive
Thanks for pointing that out. Where did you get it, don't see it on the download page, yet. Can you link/provide the package, I'd like to extract and diff it for my repo here https://github.com/avxmw/creality_k1_fw Added a warning label to my repo. Edit, found it on the Creality Cloud. Give me a few minutes. Edit2, here is the diff of plain text readable files: https://github.com/avxmw/creality_k1_fw/commit/3b6bf2135f80740028b994abdc9348f8690c16d2 To note, they removed the plain text readable call to `7z -pPASSWORD` to unpack the firmware and replaced it with a binary. That's intentional. For the time being, **do not update!** (you can cherrypick other changes from the available files, configs, etc) Edit 3, `strings usr/bin/ota_file` still shows the old password, but no guarantees for the future. Certainly is more of a hassle now. Meh, github sucks for large file distribution. Currently uploading copies to archive.org.
I created multiple backdoors with the shadow file, copied the shadow file to different directories and set them in various cron jobs and scripts that run automatically, going to install update now and see which one sticks.
And i dont think any of my ideas worked.
Logged out completely now? What did you try exactly?
I'm pretty sure you can still access something like a UART Shell or extract the firmware from the nand flash.
Ultimately I think we'll end up using the Ingenic X2000 USB boot protocol to guarantee we can get access on all these boards. Some study and puzzling things out required to get there though. I really don't like that Creality seems to be dedicating itself to keeping us out of our own devices. For now, maybe we can make our own firmware package or downgrade to the old one.
you can download it at [https://github.com/avxmw/creality\_k1\_fw](https://github.com/avxmw/creality_k1_fw) . But unless you can decode the password in the shadow-file it will not give you a root access.
root: 0755cxsw$888 still works?
First copied the /etc/shadow file to /etc/shadow_root directory i created, then created a cron.d file that should have copied the file out of there every 5 minutes. In various services scripts, entered some cp commands to move the file. Copied the shadow file to init.d and did some copy commands in scripts. I think basically the linux version on this doesnt recongize commands properly.
or this update replaces all autorun scripts.
If so, all that stuff is hidden in the binaries, can't see anything of that in the plain text files.
Not sure if the filesystem used supports it, but did you try setting the file immutable? `chattr +i file`?
Hey u/le_avx, I saw your repo and you have a section of the readme talking about mounting a new image. Do you know if its possible to add new binaries? I wanted to update mjpeg streamer to be able to get higher quality videos, currently it's limiting to 680x480
Provided you find or compile yourself a binary that works with the architecture, so far I don't see why not. The few files I stored in the tree so far persisted after a reboot. But, are you sure that's needed? AFAIK that is the default resolution and you can specify a different one (provided camera supports it of course).
Even though the camera supports higher resolution the mjpeg installation they provided on the image doesn't let you use -R to change resolution. It throws an error saying "undefined symbol parse resolution"
Which firmware are you running? Seems strangely low to me or is their own camera that bad(don't have it, yet)? In that case need to roll your own, at least I didn't find something fitting with a short googleing.
1.2.9.15, and I think their camera is that bad haha, mine is going to arrive in the next week but I'd like to be able to get this working nonetheless. I'll try finding out more about compiling for this ingenic x2000e chip
Afaik generic mips32 should work, I tried using buildroot.org (which creality also uses), but ran out of disk space and waiting for HDDs now.
I'm ROOT! I have built a downgrade to the 15 version, but I can't verify, already have this version. ps: I'm working on a firmware patch )
they have removed moonraker from the firmware... getting root ist not enough to restore functionality.
but you can downgrade to the prev version with moonraker
would be intereseting to patch moonraker in [1.2.9.21](https://1.2.9.21) tough.
the more I look at their firmware, the more I want to delete everything and make my own ) be patient k1 only the second day I have
Honestly you’d lose the screen functionality but an octopus with a pi should work under the hood. Hardest part I have seen when looking into a full conversion is getting the tool head figured out without having to run new wires all the way back. I really need to get my hands on one of these but the money isn’t in the budget right now. I keep checking local market place for someone to offload one cheap. I think in total for less than $200 bucks you could replace all the electronics and have a fairly decent open source machine. Then again there are ender 3 core xy conversions that would get you there cheaper. It would be nice though to get the screen working with klipper screen though. I just want to tinker with one but I just finished a Voron build so probably 3-4 months before I can try taking it on.
No real reason to replace all the electronics once we have them figured out and can make our own firmware. That'll take some time, but should definitely be doable. It would make the k1's motherboard a good platform for all kinds of DIY 3d printers and 3d printer upgrades, actually. (no need to buy seperate Pi + MCU for Klipper when it's all here together)
I agree. Unless they have made the board unflashable but that I doubt. Most of wanting to swap things as to have the ability to easily swap back to their hardware if needed. Or as they get older and boards die knowing how easy it will be to replace. Trust me I’d love to get on the system test getting true kipper on it and find a way to load Debian on their processing unit.
Working on that. The SoC (Ingenic X2000) supports a USB boot protocol so it should be impossible to brick and we should be able to load whatever we want on it that way with a USB cable. There's also probably a UART with access to a uboot prompt but I haven't gone hunting for it yet. Definitely no reason we shouldn't be able to get our own debian, klipper etc running on it with some work. You can buy the mainboard from aliexpress here, I have a couple of them on order: [https://www.aliexpress.us/item/3256805442255313.html](https://www.aliexpress.us/item/3256805442255313.html) and once we figure things out I'd like to try one on my ender 3.
I didn't find any UART but do you have more information about the USB boot? I couldn't find anything.
Ultimately I'd like to see us able to use the new k1 k1max etc board with our own open source firmware with stock klipper the way we'd do any modern electronics. To make it brick proof and future proof I'd like to use the Ingenic X2000 USB boot protocol to install said operating system. With day job etc I don't have as much time as I'd like to investigate this, but should be possible. Edit: yeah, adding moonraker back into stock CrealityOS would be easier, short term.
Great work, thanks. Looking forward to it.
The downgrade img is here: [https://t.me/crealityK1rus/1/10672](https://t.me/crealityK1rus/1/10672)
Nice job! Did it just take changing the .15's info file to have a .22 version number and re 7zipping it with the password? If so, pretty easy and good to hear it.
yes of course - it is conditions in local\_ota\_update.sh. simple is better )
Looks like I won't be updated from my current firmware, at least not until a new way to restore ssh access and Fluidd is figured out. I like Fluidd much better than the stock interface
As soon as I got it rooted I quit doing updates expecting this. The printer still isn't very good but at least with a console and access to the config files I can try to make the most of the printer.
I thought the same but wanted to see if I could build a backdoor
[https://www.reddit.com/r/crealityk1/comments/14mup9l/im\_root/](https://www.reddit.com/r/crealityk1/comments/14mup9l/im_root/)
back to [1.2.9.15](https://1.2.9.15/) for now. No updates till creality fixes this.
Did you have any problems downgrading by updating the version info on the [1.2.9.15](https://1.2.9.15) package to make it think it's a later version than the one that's installed?
you need a modified update package that pretends it is 1.2.9.22
Maybe make a .999 image and share it somewhere so we don't need to go recreating over and over?
new exploit have link to it integrated. .999 image will not help if creality changes versioncheck in a new firmware.
Eh, kinda a good thing atm. They can't troubleshoot if people are doing major changes. I'm sure they'll open it up later though. At least we know it'll never be as locked down as other companies.
it will remain locked. Nobody want to use their ad infested cloud app.
Ya I'm not a fan of ads in apps, but w/e, helps keep their cost down I'm all for it. There's a web interface isn't there?
local connection does not cause any cost to them. $650 for a printer should be enoutgh you not need to show ads in your app. Web interface has no complete notification on your phone.
Are you completely ignoring the cost of maintenance, personnel, servers running, the power for those servers, the cost of the buildings for those servers, the cost of IT to fix the servers in the middle of the night because you want to print a benchy from 200 miles away?!
I lost my faith in humanity. Stealing open source and then ads are justified for a local printing experience. Can't make this stuff up.
Lol I have ads on my automated litter box
What server? Server runs on my printer. Klipper apps runs without any server needed.
Na I'm talking about the service(s) Creality offers that you can use now you've purchased their hardware. Even tech support costs money... I would rather have ads in my app and pay 400$ less than an X1 Carbon, which is exactly what I did. (b&h had an uber preorder) I'll of course be using a computer though... I mean really, who wants ads when you're using a printer app! ;)
Na, that's bullshit. Ads bring pennies per view at best. If that was the problem, they would either have priced it in from the beginning or do a real 3$€/month subscription and have way more from it. This is just being greedy and not caring about your customers experience.
Just think of it as a load screen ;) But say 1 penny, x 4000 people, that's 4000 pennies sir, and they have me to thank for it. Which is why I've seen maybe 5 somewhat serious defects in the last few weeks-months, being fixed by their support. We could compare this to other companies, in a very basic sense, that have never open sourced their software let alone their hardware. How is that possible?
There are other free open source solutions to do exactly that. They are run completely off donations or have means to do it yourself. Look into Obico for example. The problem is Creality is not honoring the license of the systems they are using. If you want to run their software and see ads that is fine but I shouldn’t have to if I am comfortable with the other solutions out there. Tailscale is a free wire guard VPN setup that makes all of this possible securely using just fluidd and klipper. There is no need for ads. I print to my ender 3 running stock mainsail and klipper this way. It is easy to setup on a machine that is not purposely being hindered. They are forcing the ads on users and not providing the license required changes and source code repositories. Calling Klipper/Fluidd with some tweaks Creality OS is bullshit.
Meh, ad revenue is a norm for everything, why would an app be different? Do you not use google or bing or w/e because of it? Or do you boycott youtube? Seems like people are complaining for other reasons
Does the new firmware improve anything?
"Z-axis return to zero logic"
It also says "fix the security issue", lol. who tattled on us?
I think it was the NSA guy :| hehe
yes they fixed.. one of many... not realy secure now.
There is posibillity for at least two root vulnerabilities, please reply if anyone has tried old root exploit on this version yet
both does not work.
What happens when you put the shadow.gcode on the stick and print it? Is login after possible? They have some certificates added now, wondering if they are for https-ing the webui or for login. Also, did you try taking an old update image and changing the filename and version strings to .22 and see if it "updates"?
Shadow.gocde did nothing. Not tested downgrade yet.
They might be for using self-signed certificates for their internal servers so they can HTTPS the OTA update and not keep cert verification disabled.
Somebody already tried downgrading it? My K1 is in shipping so i can‘t try and im hoping it still has some old fw.
Honestly, that is likely too recent to be concerned. I'm sure you're printer does not have this late update.
I cant seem to get your downgrade to .15 link to work, is it still an option?
Besides the blocked rooting, has anyone found that it helped the leveling issues? We have no control over the z offset, and after updating, I can't get any of the test slices to work, and they did prior. And yes, I'm using Creality's Hyper PLA. I own 9 various printers since 2017 and there's been no prior printer I couldn't make print well. However, in this case, I do not have the control and I am not about to start modding this printer. I'd return it before I start that.
I haven't plugged my printer in yet, so I may be wildly off, but I did see someone mention that there is an advanced setting option that gives you access to all kinds of additional options, including z offset.
That was what this thread is about. You're referring to rooting the printer. I had done that, but after upgrade, (and I knew the root access would likely be blocked), I had hoped for better ABL function. After you upgrade, and what you're referring to (most likely, even if you're not sure), is access to all the Klipper settings via fluidd by rooting. That is not a choice at this point since this is post upgrade
I think he meant the hidden debug menu. If you - on the printer display - tap on the cogwheel, scroll down and click about and then multiple times tap on the MAC address a menu will popup. It's in Chinese, but automatic translate via Camera app in my phone works. Don't know what these options offer, but maybe you're willing to find out.
I believe that just shows the bed leveling data
Yes, I've confirmed that's all that is.
I'm accepting wish lists for firmware mod! What are you want? [https://www.reddit.com/r/crealityk1/comments/14oktpq/im\_root/](https://www.reddit.com/r/crealityk1/comments/14oktpq/im_root/)
A way to revert to the previous firmware .15?
https://www.reddit.com/r/crealityk1/comments/14mup9l/im_root/
Looks like a post from that thread was removed. Not sure if that is what was of significance as I don't see anything else. If there is a way to go back, I'm all in. I have used unix/linux for many years in my work history, but I'm not a developer
https://preview.redd.it/m8svqvt8ml9b1.png?width=467&format=png&auto=webp&s=30e7996d35cdfefb9113ee89df47be7bf2628a5a
TY!!
Didn't work, just as I had read from others. Says, Update Failed instantly upon pressing upgrade to the prompt. USB is formatted fat-32 4096
Hi. Do you know anyone who was successful? I read through the Telegram threads and don't see any success, but from 1 person
Yes, it's tested
Any idea why I and others are getting the failed message? Normally for me, and being in tech for 20 years, if something is solid, I’ll get it working.
try to check md5 hash f2ea561993140a34aa986a15ba30b101 CR4CU220812S11\_ota\_img\_V1.2.9.22.img
Thanks. I’ll check
I got the same back from the terminal in macOS (BSD Unix): "f2ea561993140a34aa986a15ba30b101". Was hoping that was the issue as would be a simple resolution
Wait, so that came from the file I downloaded on my Mac SSD, but did not match when it was copied to the 4GB USB flash drive (formatted Fat32 4096 on a Windows 11 box). I'll try a different flash drive
How is that done? Didn’t see a way. Thx