yashsingh1/xdaforums huggingface dataset:
[Google Home] banid0:
Hello,

I just bought a anew, fresh out the box smart clock.

I want to implement this hack, for now the non-root hack (via acessibility settings).

It seems it is not possilbe naymore?

When I first connect the device to set it up, it connects to the internet and updates itself right?

Patching the hole to the hack right?

Is it possible to set it up without internet access? Like ignore updates or something?

Is it possible somehow to block some web site DNS, in order to allow the calendar access and to block the updates?

Is there a way of BLOCKING THE UPDATE, before applying the hack?

If the above fails, is it still possible to do the root hack, or could it be also be patched bye the update and not allowing the root hack also?

I was planning to do the hack today... :cautious:

Thank you for your help!
[Google Home] olavxxx:
I found it to be a bit easier if I installed a bluetooth keyboard with mouse, instead of on screen keyboard.

After installing the keyboard if I chose "open"; I went back in the menu where I could go to settings menu and then bluetooth and connect keyboard.
[Google Home] rrowe629:
Thanks for the replies. I'll respond in order:

Taffasu: I translated your reply as "Hello, I have a problem that my clock is not updated :D You have to do it like me! "Hey google" "connect bluetooth" and have a keyboard and mouse installed on your mobile phone, you can move around for hours have a nice day". I haven't tried connecting a keyboard/mouse app but will do so later today. I don't see how that is going change the fact that the browser won't download anything. How did you prevent your clock from updating?​

​

banid0: Your understanding of the issue is consistent with my experience, so I would hold off for now. In the root hack instructions on GitHub here, you'll note that the calendar hack is used to download the launcher. The calendar hack (which I haven't tried; I have no Android devices) still requires the ability to download, so I think you're back at the same issue. My current thinking is that it may be possible to block the update by intercepting the request, but we would need the URL of the site that provides the update to accomplish this.​

​

olavxxx: No doubt physical devices are easier that phone apps, but we have to resolve the "no download" issue first.​

​

Thanks all - let's keep scratching at this and see if someone has a solution.

​

​
[Google Home] banid0:
But this solves the problem that is related in this thread, of not working the hack anymore?
[Google Home] rrowe629:
I've re-read this thread from the beginning and see that a1ex4 posted on Jan 17 of this year that "The domain used to check for connectivity is connectivitycheck.gstatic.com, the one for Lenovo OTA is (most likely) smartdm.lenovo.com." If someone can confirm that blocking smartdm.lenovo.com will prevent the update, then perhaps that provides an answer. Just entering this URL into a browser takes you to a sign-on screen title "Lenovo Online Device Customization System", so it looks promising but, of course, you only get one shot at this - if you fire up a new device and it updates anyway, you're back to the "no downloads" problem. Can anyone confirm?
[Google Home] rrowe629:
Interesting thread here that seems to confirm that smartdm.lenovo.com is, in fact, the update site. It's interesting that these folks are trying to update their clocks rather than preventing the update. I"ll see if I can block this site later today with dnsmasq and report back. In the meantime, anyone feeling lucky?
[Google Home] banid0:
Would you advise me to on on the setup, blocking this dns to see if it works and doesn’t update, or do you think it’s too risky?

:x

EDIT:

I read the entire thread and it SEEMS the update system MIGHT not be working in Europe. I live in Europe.

So it could be a good thing.

But from the comments, it seems the clock gets to a zombie state where it doesn’t work if it doesn’t reach the update site.

So it SEEMS to me that when I turn the clock and try to set it up with internet access (needed for the initial setup), it could happen one of two things:

-It can’t update itself and doesn’t skip this, giving me no usage of the clock.

-it updates and I lose the hqck hole.

Am I thinking wrong?
[Google Home] rrowe629:
I used this as a guide for the setup and run dnsmasq and apache in docker. It's a fair amount of trouble to set up, however. And it is risky if it fails to stop the update, of course. I'll see it the block works with my setup and report back.
[Google Home] banid0:
It seems I edited my previous post after this post of yours, can you please check my edit?

Your dns method gives different results than just simply blocking the DNS resolution in the router/pi-hole?
[Google Home] rrowe629:
Haven't tried blocking with pi-hole. We use Macs here and Private Relay doesn't play nice with pi-hole. Seems to be OK with dnsmasq, however - go figure. Given you are in Europe, I agree that based on the thread it might not update - but it's possible that's been fixed since that thread was written. If the clock gets stuck, there seem to be some workarounds in that thread; I have no opinion on what the outcome might be.
[Google Home] rrowe629:
Just tried blocking smartdm.lenovo.com by using dnsmasq and returning an address of 127.0.0.1 for the lookup. Seems to have worked - in the log, dnsmasq reports that 127.0.0.1 was returned and the clock (which does query smartdm.lenovo.com, but has already been updated) seems to boot just fine. Doesn't really tell us what would happen with a "fresh" clock, of course. I just ordered a shrink-wrapped clock from eBay, so I'm going to keep thinking about this and see if I can't convince myself to give it a try. Worst case, I have a new clock for my garage.:)

If anyone decides to try this in the meantime, there are a couple of things to be aware of with this method. First, you need to make sure your router can hand out ip addresses for the DNS server and that you can change this information. Some, i.e. Xfinity, do not allow this. This is needed because the clock will get its DNS server's ip from the router and we need it to point to dnsmasq or some other DNS server we can control. Second, if you use Private Relay, it may be necessary to disable this if you do any testing of the redirection from an Apple device.

Lastly, regarding the "dns method": I had to go this route because I couldn't use my iPhone to turn on TalkBack which is required for the "calendar method". Both end up at the same place - a page in F-droid for downloading a keyboard. Essentially, I set up a tiny website with apache that returns a link to a keyboard app on F-droid. I then used dnsmasq to redirect a link to the apache website. This is as described by holysoles on Jan 16. I can provide more details on how to set this up if anyone is interested.
[Google Home] rrowe629:
Looks like this is probably a dead-end. I reset my updated clock and went back through setup in Google Home with smartdm.lenovo.com blocked. Everything preceded as normal until it got to the "Connecting" screen on the clock as it was connecting to my WiFi network. In fact, it DID connect - I could see it in my router and the clock showed the IP address in the top right corner. However, with startdm.lenovo.com blocked, the clock was unable to complete the connection process and it failed in the Google Home app. Will keep poking at this, but I don't see that it's possible to complete setup of the device with smartdm.lenovo.com blocked.
[Google Home] rrowe629:
Well, I found a workaround for the above issue. Once the clock hangs on the Connecting screen, remove power from the clock and re-apply. The clock will re-boot and come up with a screen that says "Link account". At this point, the clock should show up under Local Devices in Google Home, with "Link device" under its name - click on it. The rest of the setup process is as always. At this point the clock should be setup without having ever actually "talked" to smartdm.lenovo.com. It seems reasonable to expect a "fresh" clock would behave the same way, but of course, it's not guaranteed. For now, this seems like a viable means of preventing the clock from updating when it's first connected to the internet. I won't be able to test until I get a "fresh" clock, however.
[Google Home] banid0:
So, I will also share with you my update.

I just bought this new and sealed, from eBay.

In the sticker says Mfg Date 2021-08-31.

I am mentioning this because of the version The will appear.

I turned this on, google Home setup, next next and got to the update.

It was updating, and counting the % up.

I thought: this is just downloading, I will stop this.

And turn the power off.

But I got the MAC address on my router, so I went and blocked the internet access.

Now as I turn on the clock, it thinks for some time, and then give an error.

So it displayed my ip and build number.

As you can see already, it is newer than yours.

Which I don't like!

(....)

(....)

(....)

I tried a lot of things...

(....)

(....)

(....)

I managed to download te f droid app to the device.

But I can't run it, the option is disabled.

In the downloads folder, I can create volumes but they get the name "(invalid)" and I also can't rename it.

It seems a permissions problem?

When I click in the app nothing happens and the browser window requesting permissions as seen in the video nothing happens.

Any ideas?
[Google Home] banid0:
Can you please talk me through this process in more detail what you done?

I just factory reset mine and when I reboot it starts all over asking to get the app
[Google Home] banid0:
Can the firmware be reversed via fastboot or something? Because I have been trying everything and I can’t run the APK…
[Google Home] rrowe629:
That's expected behavior when you reset the device. What I did was to block smartdm.lenovo.com using dnsmasq. You'll find a link to how this is done in my post above. I directed dsnmasq to respond to a request for smartdm.lenovo.com with the IP address 127.0.0.1. Once this is blocked, you use the app and go through the setup process. Because smartdm.lenovo.com is blocked, the clock will get stuck on the "Connecting" screen and the app will tell you it wasn't able to complete the connection. At this point, unplug power from the clock and then plug it back in - do not reset the clock. It should come up with a screen that says "Link account", which you can do with the app.
[Google Home] rrowe629:
No idea whether this is possible or how it would be done.
[Google Home] banid0:
I can go on with the setup.

The thing is, it triggers an update.

Maybe blocking the lenovo.com and whitelist the g connectivity something that the devices uses to check connectivity?

I remind you that my version of the software seems newer, might not work as yours.

You ordered a new one, right? When will it arrive?
[Google Home] rrowe629:
New one scheduled to arrive in the next day or two. Based on what I've learned so far, yes - in theory smartdm.lenovo.com should be blacklsted and connectivitycheck.gstatic.com whitelisted. I should note, however, that the device queries numerous sites. As an experiment, I blocked everything I had logged for the device except connectivitycheck.gstatic.com, but had to quickly undo that because we were no longer able to access our Nest thermostats.

I can't speak to your version of the software - my versions on the updated device are listed in my first post, so it would be interesting if yours were indeed newer, although they may be different since you are in Europe. If your device has already been updated, then I don't think the tricks I've outlined here will affect your clock and, to my knowledge, there is no "going back" after an update.

Unless I can think of a deal breaker in the meantime, I plan to try what I've outlined here on the new device when it arrives. I see three possible outcomes: it does/doesn't update, or I brick it. I don't think bricking is likely but can't rule it out. If it doesn't update, then I'm back to attempting to download and install APK files as outlined by others in this thread and, even then, there is no guarantee that will work. If it does update, despite having smartdm.lenovo.com blocked, I still don't have a means of downloading/installing APKs. Will report results once I have them.
[Google Home] banid0:
I am afraid of letting it do first update and losing for ever the ability to hack it.

I will wait for your experience on a brand new device because i have come to a dead end.

Ty
[Google Home] rrowe629:
Today, I tried with a "fresh" clock that was just removed from the shrink wrap. It's good news/bad news. With smartdm.lenovo.com (and a number of other sites) blocked, it still went to the "Updating" screen, but stayed on 0%. After a bit of time, it went to a "Network problem" screen (which I had not seen before on my updated clock), which basically says it's not connected to the WiFi network - but it is; I can see it in my router's app. Removing and re-applying power to the clock doesn't help; it's as if the clock

must

talk to smartdm.lenovo.com in order to complete initial setup. So, I don't have a solution at this point.

As I was testing with the clock that had already been updated, I noted it was connecting to a number of other sites that were not necessary to complete the setup process, such as www.youtube.com. I blocked these sites as well. At this point, the only thing I can think of to try is to begin unblocking these sites one-by-one until only smartdm.lenovo.com remains blocked. I feel like MacGyver...

Just for reference, the "fresh" clock is showing the following numbers:

Build version: 1.1.1.63​

Software version: 9.98.2.373491306​

Firmware version: 1.52.257161​
[Google Home] banid0:
You are describing exactly the behavior I found (regarding to the connected to the internet or not).

The 1.52.257161 version, is the same for me.

Please try that, unblocking the sites, but for me it seems that if it can't connect to the update site, it won't launch the google launcher, enabling then the device functionality.

And if you let it connect, it will update.

What have you found out?
[Google Home] rrowe629:
Have other things to get done today; will try this tomorrow, but I think you are right - it's still going to hang even if I unblock everything but smartdm.lenovo.clock. Will let you know.
[Google Home] banid0:
Will you allow it to check if after updated the hack still works? :rolleyes:

The user @Valbuz in the YouTube video of this guide, 3 days ago, implies that the update was made recently...
[Google Home] rrowe629:
Just finished re-enabling all sites but smartdm.lenovo.com, but the result is the same. Hangs on Updating for a bit and then goes to the Network Problem screen. At this point, I've exhausted my ideas and skillset. I suppose it might be possible to analyze the traffic between an updated clock and smartdm.lenovo.com. But then you would need a means of spoofing this conversation. Even if you got that far, it's possible that a "fresh" clock isn't provisioned with everything it needs to be operable and

requires

more than just a handshake to become fully operable.

I spent some time scanning the threads and instructions on rooting the device, but these all seem to require putting the clock in developer mode. This doesn't seem to be possible without first loading a launcher app on the clock, which brings us back to this problem.

So, here's what I know: the most recent firmware blocks all of the previously-defined hacks. No way to download anything with the stock firmware. The firmware that the clock was shipped with won't complete setup without first updating. An intermediate version of the firmware seems to be required and I don't see a way to make that happen. Perhaps someone more familiar with mtkclient can provide a means of accomplishing this.

Unless someone has another approach to suggest, I think we are at a dead-end. As much as I like the physical device, my use case is for a Home Assistant dashboard.
[Google Home] banid0:
But is there a way of rooting the device with a physical hack? With USB cable? I couldn't understand that.

Are you going to let it update to see what happens? Do you have anything to lose?

Is it confirmed the hack will stop working? How do you know that?
[Google Home] rrowe629:
My understanding is that the device has to be in "Developer Mode" to do the physical USB hack. To put the device in "Developer Mode" requires access to a settings screen that is not available without a launcher. So, the physical hack first requires installing a launcher on the device in order to get to that settings screen. Because the most recent version of the firmware doesn't allow downloads, there is no way to get a launcher on the device, therefore no way to enable "Developer Mode", therefore no physical usb hack. I could be wrong, but this is my current understanding.

I have two clocks. The first one is updated and I can confirm the hack no longer works. Would love to hear from someone with a different experience or a technique I haven't tried, but that's what I'm seeing. Perhaps there is a way to revert this to a previous version of the software, but that is outside my expertise.

I'm going to hold off on updating the second clock for now as I have no immediate use for it. Perhaps someone smarter than me will pick up on this thread and find a way to get this done. In the meantime, my first clock is up and running with the standard firmware and with smartdm.lenovo.com blocked.
[Google Home] banid0:
I managed to download apk files...I didn't manage to to be able to run them

If I click the apk nothing would happen

and it said the filename was invalid

do you have or someone has a suggestion ti circumvent this? or to do in other way?

because I could download the file, just wasn't able to run it...so close...
[Google Home] rrowe629:
Sorry, I can't even download on my updated Clock. So I have no idea where you would go from there.
[Google Home] rrowe629:
I'm curious to know how you got the APK files downloaded. What version of the software does your clock show? Which procedure did you us? As I said in my original post my updated clock shows the following: Build version 1.2.2.627 and Software version is 11.51.6.416171605. Firmware version is 1.56.285116
[Google Home] banid0:
I open the browser as the described method.

I noticed there were some bookmarks already saved, example

www.google.com/randomthigs/index.html

I used the cut tool to delete characters, until I get a domain I wanted, like

www.ggle.com

I created a dns to point to my pc, in my router

imagine my pc has 192.168.99.99

I created a domain in my router that "ggle.com" point to 192.168.99.99

then I ran a small http server in my pc, as I had python installed, googling I found out the simplest option would be to run

How to Launch an HTTP Server in One Line of Python Code – Real Python

In this tutorial, you'll learn how to host files with a single command using an HTTP server built into Python. You'll also extend it by making a miniature web framework able to serve dynamic content from HTML templates. Along the way, you'll run CGI scripts and use encryption over HTTPS.

realpython.com

so I ran in the terminal

python3 -m http.server 80

you can create an alternative method to get a small http server running

now you have the content of the folder where you ran the command, served in http server

so you can download the app from the pc to the device

try and let me know what happened

in my fresh clock, without doing the first update, I got the file downloaded but I couldn't run it

try please on both of your clocks and tell me if you can do something more
[Google Home] rrowe629:
I am able to get to F-Droid by using a method similar to what you described above. I have a server set up and it has links to F-Droid. My problem is once I get there and click on the download link, nothing happens, it doesn't appear to download at all. That's why I would like to know the versions of the software you are running.
[Google Home] banid0:
When I click, it download and it jumps to the dowloaded files Android section.

I already wrote this, it is the same of yours.

The other versions I don't know how to check it.
[Google Home] rrowe629:
Go into the clock settings, then click on About device.
[Google Home] banid0:
When i can, i will do that

In the meantime, i remembered that after getting the no connection to the internet error, you can enable the connection to the internet in the router and enable and disable the accessibility feature in the clock through the mobile phone. (Google home app)

I don’t know of it’s through the internet or locally via Bluetooth.

That way you can use or not the accessibility feature, whichever is more convenient commanding the clock.
[Google Home] rrowe629:
I've made some progress using my updated clock. As I originally stated, I don't have an anodroid device, so I've been relying on the method outlined by holysoles on April 16. I missed something in his/her description, however and got a little too clever. Instead of using plain text in my local web page, I inserted a hyperlink for the keyboard app. The hyperlink worked, but it took me to a browser that would not allow downloads and would not allow select/cut/paste in the address bar. I went back and reviewed Cameron Gray's video and noted that the address bar in the browser he was using had a black background whereas mine was white. So, I went back and changed my local web page to just show the links as plain text. After rebooting the clock, navigating to the local web page, then holding down on the plain text, I was given the option to Open the link which I did and... I had a browser with a black background and could proceed as outlined in the video! So,

I was wrong in stating you couldn't do this with an updated clock

. I just couldn't do it with my updated clock because the browser I invoked would not permit it. So apologies for that.

With regard to the problem you are having, I haven't seen that, but would suggest that you download the APK a second time. When you are taken to the download screen, you should see two packages with the same name downloaded. The newest one will be on the left and the older one on the right. Select the older one and delete it (trashcan in top bar). Then try to open the one that's left.

I've gotten as far as installing the keyboard and launcher will press on and, if successful, do the same with the "fresh" clock - after updating, of course.
[Google Home] rrowe629:
I let the "fresh" clock update and was able to complete the installation of the APK's by following Cameron Gray's video here and by following the suggestions made by holyosles in the thread on April 16. Success!
[Google Home] banid0:
I am very tired, because I am at training class remotely.

TLDR right now, because as I said, I am very tired.

Let me be clear: you let a new clock update it itself without any kind of blocking.

After update you blocked the internet.

And you still managed to do the update?

I am just being sure if I can allow it to update or not, thank you!!!
[Google Home] rrowe629:
You can allow it to update. No need to block anything while you are setting things up. Once you have the apps you need, you can block the internet as described in Cameron Gray's video.
[Google Home] banid0:
OK Thank you very much for your information.

I will let it connect and update and then, try the procedure.

I will post the update and/or will request your help if needed.

Thank you once again.