What's new

Huawei’s HarmonyOS: “Fake it till you make it” meets OS development

F-22Raptor

ELITE MEMBER
Joined
Jun 19, 2014
Messages
16,980
Reaction score
3
Country
United States
Location
United States
Huawei is China's—and formerly the world's—largest smartphone vendor, and over the past 18 months, it learned an important lesson: the company can't rely on the US supply chain. In 2019, the US government bannedUS exports to Huawei, which cut the company off from access to most chip and software suppliers. Building a phone is hard without access to key parts and apps. Huawei's latest Q4 2020 numbers show its phone sales in free fall, dropping 42 percent year-over-year.

Because of this, Huawei wants independence from the worldwide smartphone supply chain. While hardware independence is something the company needs to work on, Huawei also needs to get free of Google's software. So, as many companies have tried to do before it, Huawei hopes to make an Android killer.


The company's attempt at an in-house OS is called "HarmonyOS" (also known as "HongmengOS" in China). "Version 2" was released in December, bringing "beta" smartphone support to the operating system for the first time. Can Huawei succeed where Windows Phone, Blackberry 10, Sailfish OS, Ubuntu Touch, Firefox OS, Symbian, MeeGo, WebOS, and Samsung's Tizen have all tried and failed?

To hear Huawei tell the story, HarmonyOS is an original in-house creation—a defiant act that will let the company break free of American software influence. Huawei's OS announcement in 2019 got big, splashy articles in the national media. CNN called HarmonyOS "a rival to Android," and Richard Yu, the CEO of Huawei’s consumer business group, told the outlet that HarmonyOS "is completely different from Android and iOS." Huawei President of Consumer Software Wang Chenglu repeated these claims just last month, saying (through translation), "HarmonyOS is not a copy of Android, nor is it a copy of iOS."

That makes HarmonyOS sound super interesting. Naturally, we had to take a deep dive.


After getting access to HarmonyOS through a grossly invasive sign-up process, firing up the SDK and emulator, and poring over the developer documents, I can't come to any other conclusion: HarmonyOS is essentially an Android fork. The way that Huawei describes the OS to the press and in developer documents doesn't seem to have much to do with what the company is actually shipping. The developer documents appear almost purposefully written to confuse the reader; any bit of actual shipping code to which you hold up a magnifying glass looks like Android with no major changes.

The phrase "fake it till you make it" is often given as motivational advice, but I've never seen it applied to OS development before. If you've ever seen a modern Huawei Android phone, HarmonyOS is largely the same thing... with a few strings changed. So while there's not much new to see, we can at least dissect HarmonyOS and debunk some of Huawei's claims about its "brand-new" operating system.

But first—a two-day background check?!
Before we dive into HarmonyOS, we have to actually getHarmonyOS, which is an incredible hassle. Supposedly some Huawei Android phones like the P40 Pro can be switched over to HarmonyOS through some kind of closed beta. This is limited to China, though. For me, getting HarmonyOS meant finding my passport.

For comparison, let's first talk about how other vendors serve up their operating system SDKs. For Android, you Google "Android SDK" from any desktop computer, click the first link, and press the download button. Apple requires developers to own a Mac for the iOS SDK, but from there it's just a simple trip to the App Store to download Xcode.

Before you can try Harmony OS, by contrast, Huawei requires you to pass a two-day background check. They even want a picture of your passport!


Huawei requires you to go to Huawei.com, make an account, and then sign up to be a developer by passing "Identity verification." This means sending Huawei your name, address, email, phone number, and pictures of your ID (driver's license or passport) and a photo of a credit card. You must then wait one or two business days while someone at Huawei manually "reviews" your application. Huawei helpfully notes that it will not charge your credit card.

Huawei's docs say that "the ID card, passport, driver’s license, and bank card are used to verify and match your identity information." OK, but why? Why does Huawei want to know everything about me first? And why does that take two days?


Even if you try to skip Huawei's horrible sign-up process and "pirate" the Harmony SDK by downloading it from somewhere else, the SDK won't run the emulator until you sign in with an account that has passed the two-day background check.

Can you imagine what a potential HarmonyOS developer will think when they get to this step? If you're an established developer in an app ecosystem, it's normal for the ecosystem owner to collect some identifying and financial information. You probably want a developer to be able to charge money for their app, which means you need to be able to transfer money to a bank account, and the ecosystem owner might be responsible for tax collection. Right now, though, we are miles away from that situation with HarmonyOS. At this point, which is just downloading the SDK for the first time, your typical downloader will be a curious developer who is just beginning to investigate Huawei's OS. (Signing up for "Merchant Service" is actually a totally different Huawei process.)

Nosy
This is supposed to be a brand-new operating system, and Huawei's position at this point would commonly be one of openness toward any potential developers. Google's one-click, anonymous download for the Android SDK, on Windows, Mac, and Linux, is the model companies should be emulating. Huawei is instead making this as hard as possible, and it's easy to imagine a potential developer balking at the ridiculous and intrusive download process, closing the tab, and going back to Android and iOS development. It's the worst first impression of an operating system I've ever seen. As a developer, you've got to wonder if Huawei will always be this difficult to work with in the future.

That said, I did all this.


In the spirit of taking one for the team, I shamefully sent Huawei a picture of my passport and credit card. My information probably went God-knows-where in China; it felt like a violation, and you're welcome. After a two-day wait, my social credit score was apparently high enough that I was granted access to Huawei's precious operating system. (Hopefully, Beijing doesn't have "a file" on me now.)

Now, let's see what we got after all this effort.

HarmonyOS: Android 10 with no discernible changes


After jumping through all these hoops, you don't actually get to run the emulator locally on your machine. Once you log in to the SDK, you can fire up a "remote emulator." Basically, it's HarmonyOS if it ran on Google Stadia—you'll get a laggy, interactive video stream of the OS sent to you from somewhere on the Internet. The emulated phone starts up in Chinese, reports a SIM card with a China +86 number, and is on a network called "华为内网" (in English: "Huawei Intranet"), so I'm going to guess this is in China somewhere. Location is blocked, and any browser access seems to be disabled as well. After some testing, I am pretty sure this thing is a physical phone plugged into a testing rig; if I enable USB debugging, which would interrupt any existing USB connection, the whole emulator dies and I get disconnected. There would be no reason for that to happen if this was a purely software virtual device.

Anyway—if the pictures in this piece look a bit weird, keep in mind you're seeing screenshots of a 720p video stream that was beamed in from halfway around the world.

You get your first inkling of HarmonyOS' Android-ness when you boot up the phone. Indeed, you're presented with an exact copy of Huawei's "EMUI" Android skin, but the "About" screen now says "HarmonyOS" and has been scrubbed of all mentions of "Android." The official line is that Huawei ported over the EMUI Android skin to HarmonyOS, except that all the bits under the Android skin also appear to be Android.


Just a trip to the app info screen will confirm that this phone runs Android. You'll see apps like the "Android Services Library," "Android Shared Library," "com.Android.systemui.overlay," "Androidhwext," and on and on, for about 10 different entries. It looks like some packages got hit with a find-and-replace, changing "Android" to "HarmonyOS." If you look at the app info for the "HarmonyOS System" package, you'll see it uses the Android system icon (the "Android green" color is a dead giveaway) and a label saying "version 10." Uh, isn't HarmonyOS on version 2?

The "version 10" here is a reference to Android 10, which seems to be the version HarmonyOS is based on. If you visit the "Huawei App Gallery" (which has a ton of apps... because it is just an Android app store), you can choose from any number of "system info" apps, which will all identify the phone as running "Android 10 Q."


HarmonyOS is also way, way too complete for a beta. We know what an in-development operating system should look like—something like, for instance, Google's Fuchsiaor Samsung's Tizen. You should see nonexistent app selection, limited features, and other rough edges. If HarmonyOS really is a "new" operating system, Huawei's engineers are doing an incredible job! They have even perfectly copied every single Android 10 feature! There is a great gesture-navigation system, a million settings, a permissions system, NFC tap-and-pay support, dark mode, and a killer notification panel!

Huawei says commercial HarmonyOS phones could launch this year, and I believe it. That is totally possible when you are just shipping Android.

For a brand-new operating system that isn't out yet and has zero users, the developer support Huawei has lined up is also incredible! In the Huawei App Gallery, you'll see apps from Google, Microsoft, Amazon, TikTok, WeChat, Tencent, Baidu, Weibo, Evernote, and more. You'll also find thousands of app reviews dating back several years from users who can't possibly exist, because HarmonyOS is brand-new and isn't Android, right?

Huawei's main contribution to HarmonyOS is the same thing it contributes to its builds of Android in China: Huawei replacements for the Google Play ecosystem. Very few of Google's services are available in China. There is no Play Store, no Google Play Services, none of Google's usual Android apps (other than a special Wear OS helper app). In China, it's up to every OEM to supply its own app store, and Huawei has been doing this for years. Huawei has "Huawei Mobile Services," consisting of a pretty complete package of the Huawei App Gallery, cloud-based accounts with syncing of contacts, photos, calendars, notes, and more, as well as a sturdy cloud portal for all your data at cloud.huawei.com. None of this has anything to do with HarmonyOS, though.


All open source operating systems, Android included, stand on the shoulders of giants and pull in tons of code from upstream projects. Android uses the Linux kernel, the F2FS and Ext4 file systems, Libc and Libc++, Java, OpenGL and Vulkan, OpenSSL, Webkit, and a million other projects. No one would argue that Android isn't its own operating system, though. Android also contains a ton of Google-developed code, like (originally) heavy forks to the Linux kernel, the Dalvik VM/Android Runtime, built-from-scratch touchscreen code and a constantly evolving touch interface, phone call support, and more.

After hours of poking around on HarmonyOS, I couldn't point to a single substantive change compared to Android. Other than a few renamed items, nothing is different. If anyone at Huawei wants to dispute this, I would welcome an example of a single thing in the emulator that is functionally or even aesthetically different from Android. If anyone wants to cry "it's just a beta!," Huawei says this OS will be shipping in commercial phones this year. There does not appear to be time to do a major overhaul from "Android" to "Not Android."


Forking Android and launching your own rebranded operating system is totally fine. But be upfront about that. Say "HarmonyOS is a fork of Android" instead of "HarmonyOS is not a copy of Android." Don't call HarmonyOS "all-new" when pretty much the opposite is true.

Huawei is basically in the same position as Amazon with FireOS, which is also a fork of Android. Here's how Amazon deals with that: the first two sentences of the "Fire OS Overview" page on developer.amazon.com read, "Fire OS is the operating system that runs Amazon's Fire TV and tablets. Fire OS is a fork of Android, so if your app runs on Android, it will most likely run on Amazon's Fire devices too." A search for "Android" on that first Fire OS page brings up 67 results. As of press time, a search for Android across the entire HarmonyOS documents collection brings up zero results. On the "About" screen of the HarmonyOS emulator, there is an "open source licenses" link, but the page does not load.

Android is a trademark of Google, so Amazon and Huawei can't use the name in promotional materials. But that doesn't mean you shouldn't be upfront about it in your developer documents and when speaking to the public. Not doing so feels like plagiarism.



Huawei’s dev documents are psychological warfare
Since the emulator is a wash, what about the source code, documentation, and SDK? HarmonyOS is supposedly open source, or at least, there is an "open source version" of HarmonyOS called "OpenHarmony," which seems to have no connection at all to what ships on the emulator. The current source code for OpenHarmony identifies itself as "Version 1.0" and is only for IoT devices, while the beta version for phones and the SDK is "HarmonyOS 2.0." So at the very least, the source code is also out of date.

OpenHarmony 1.0 and the "HarmonyOS 2.0" emulator do not seem related. The OpenHarmony repo uses Huawei's LiteOS IoT microkernel, and the apps in the repo are not Android apps. The HarmonyOS 2.0 emulator, because it is Android, is based on Linux, and all the apps are Android apps. Huawei's documentation claims that both kernels are supported, but it's hard to see how the two would ever be the same product or why you would want to call them the same product when they seem to have nothing in common.


The docs for HarmonyOS are available here, and please, I implore you, read some of them. Read the developer documents and ask yourself, "Does this make sense?" Or maybe, "Is this trying to communicate useful information in an honest, straightforward manner?" Most of the time, the answer is "no." Huawei's developer documentation is full of what I can only describe as nonsense. Many sentences are just buzzword-filled drivel.

“Super virtual”
Let's start with the major features of the OS on basically page one of the docs, the "Technical Features" page. The Book of Huawei reads, "The distributed device virtualization platform enables cross-device resource convergence, device management, and data processing so that multiple devices jointly function as a super virtual device." You can click through the link to find out what the heck a "super virtual device" is, and you'll get the "glossary" definition that it "integrates the capabilities of multiple devices through the distributed technology into a virtual hardware resource pool and then centrally manages and schedules these capabilities based on application requirements."

I think Huawei is describing... a network? The writing style of developer documentation usually does not bounce between vague marketing hype-speak like "super virtual device" and what sounds like patent application legalese. Understanding an operating system is difficult enough without all the flowery language obfuscating what is really going on.


Let's read some more. The four top-line "technical features" in the HarmonyOS documentation—those things that should be the most important parts of the operating system—are all these "distributed" something-or-others that all seem to describe mundane network capabilities that have been possible on any operating system for years.

  • The "Distributed Virtual Bus" is "a communication base for interconnecting devices, such as smartphones, tablets, wearables, Smart TVs, and head units." The "typical scenarios" for the Distributed Virtual Bus can "connect smartphones to food processors, range hoods, air purifiers, air conditioners, lights, curtains, and more." So like, Bluetooth? Wi-Fi? How is this a top-line feature of your operating system?
  • The aforementioned "Distributed Device Virtualization" will let users "connect their smartphones to smart TV, with the gravity sensor, acceleration sensor, and touch control capabilities of the smartphone virtualized as a remote control." Many games and smart TV OSes have been doing this forever, and again, this just sounds like Wi-Fi.
  • "Distributed Data Management" will "project a document from their smartphone to smart TV, and perform operations such as page-turning, zooming, and graffiti on the document on the smart TV." This is no different from the previous gaming option, Huawei!
  • "Distributed Task Scheduling" is "designed based on technical features such as distributed virtual bus, distributed data management, and distributed profile. It builds a unified distributed service management mechanism (including service discovery, synchronization, registration, and invocation), and supports remote startup, remote invocation, remote connection, and migration of applications across devices." That was a lot of words to say very little, but the "typical scenarios" include this one: "After ordering takeaway food via a smartphone, users can continue checking food delivery information on their watch." Amazing.
These aren't hand-picked to be the worst examples of Huawei's writing; these are top-line bullet points that should be the most important parts of your OS. Yet the documentation describes basically nothing. I really do not think there is any meaning behind these words; perhaps Huawei is just faking it?

Each of these terms is not described with much additional detail in the full documents. Huawei likes to define an OS concept and then immediately move on, providing no extra details of what it actually is or does. If you think a "distributed virtual bus" is an actual thing for "connecting to a toaster" or whatever, what network technology does it use? How are users authenticated? What APIs do the devices use to communicate? How would you actually integrate this into a physical toaster? What does the interface look like? How would I plug into this capability with my app? How is it better or different from Bluetooth and Wi-Fi? None of this is ever answered.


The solid parts of the documentation that you could actually verify mostly fall into two categories: 1) things from Android and 2) things that do not exist yet. The "Application Fundamentals" page claims that HarmonyOS has a new app format called "App Packs" with ".app" extensions, but everything on the emulator is a regular Android .apk file.

I built a sample app with Huawei's SDK, hoping to see an "App pack." It spit out a .hap (HarmonyOS Ability Packages) file, which is apparently part of an "App Pack." Great! Now, Android .apks are just standard .zip files with a new extension, and changing the extension to .zip will let you unzip an app and preliminarily poke around in it. What happens if you try this trick with a .hap file? It unzips! And it's full of Android code. All the Android decompile tools work, too, because HarmonyOS is Android. HarmonyOS apps made in the SDK target Android API 29, aka Android 10. Like all of Huawei's documents, the Application Fundamentals page does not mention this Android connection at all.

The Application Fundamentals page was really my last hope of finding anything of substance in the docs. I picked it because I vaguely remembered that Huawei had previously released the HarmonyOS "ARK Compiler," and the company gave a big presentation about it in 2019. As basically the earliest component of HarmonyOS, surely there would be some meat here, right? The HarmonyOS Application Fundamentals page now doesn't mention the ARK Compiler at all. Googling around for what in the world happened to it reveals that developers also criticized the ARK Compiler as "a scam" at launch and said it was "not even half-finished." The original page for the ARK Compiler now 404s, and Huawei's repository for the ARK Compiler is dead, too.


Huawei's SDK, by the way, is called "DevEco Studio" and—I'm sure you can guess this by now—seems to be the same base components of Google's Android Studio SDK, along with lots of code taken from Android. It's based on the Jetbrains IntelliJ IDE with the Gradle build system and mostly looks and feels identical to Android Studio. Peek at the "third-party software" list on DevEco Studio's About screen, and you'll find 27 packages that start with "Android," like the Android SDK Tools, the Android DEX library, the Android Gradle plugin, and more. At least it will be familiar to developers!

I could go over more of the development docs, but when none of it actually applies to the code Huawei is shipping, I don't see a point.

Just branding? That might be enough for China
On the technical side, we don't seem to be accomplishing anything here. Being a fork of Android still makes you mostly dependent on Android for new features. So far, Huawei hasn't shown any ability to take Android in a different direction, and like with Amazon and Fire OS (which is still based on Android 9), right now it seems like forking will just result in an inferior Android build with slower updates. If Huawei really wanted to reduce its reliance on US software, it hasn't actually done that.

This whole effort seems to be nothing more than a branding exercise. Huawei can claim HarmonyOS as its own and say that it isn't reliant on US software, and it can hope people will believe those claims. "Saving face" seems to be the only reason HarmonyOS exists, and that also explains why the company is so reluctant to be upfront about Harmony's Android lineage.


Legally, Huawei doesn't have to stop using Android. Open source, publicly available software isn't subject to US export restrictions. Huawei is already using the Android source code without Google's ecosystem in China, and there's nothing stopping Huawei from continuing to do that. The only thing Huawei can't do is use the closed-source Google apps.

Huawei says it is willing to license HarmonyOS to other smartphone manufacturers and become a real OS vendor. If Huawei really goes through with this, it's not clear why any company would buy into HarmonyOS, since right now HarmonyOS is just "Android, but slower." With the current US restrictions in place, no US-based developers could submit apps to a Huawei store. (Microsoft is an exception.)

This matters less within China itself, where top worldwide apps from outside the country are often banned, but internationally, HarmonyOS doesn't stand a chance. Having Huawei as your OS vendor means no apps from Facebook, Snapchat, Netflix, Hulu, Amazon, Twitter, Roku, SoundCloud, Pandora, Amazon, Uber, Lyft, Tinder, Shazam, and more. Google might be the single greatest enforcer of the current smartphone OS duopoly (just look at what the company did to Windows Phone), and without apps like Gmail, Chrome, YouTube, the Google Assistant, and Google Maps, Huawei's Android fork would be dead on arrival outside of China.


The biggest driver of demand for HarmonyOS, however, might be the Chinese government. Beijing's response to the US ban has been to aggressively push for more reliance on local technology. In 2019, China told government offices and public institutions they had three years to move off PCs that use foreign technology and software, kicking off a massive transition for PC equipment in China. The decree is called the "3-5-2" policy, for the expected pace of replacing 30 percent of PC equipment in 2020, 50 percent in 2021, and 20 percent in 2022. China is building its own agonizingly slow x86 CPUs and dumping Windows for homegrown operating systems like "Kylin" and "NeoKylin." These are Chinese-controlled Linux distributions that look like clones of Windows, often Windows XP.

The 3-5-2 policy is strictly for government desktop and laptop computers. Right now, Android is really the only game in town for Chinese phone manufacturers, but Huawei and the Chinese government may want to pretend that HarmonyOS is a Chinese Huawei product and not an American Google one. Kylin OS, as a Linux distro, is just the usual stack of open source components and therefore not particularly Chinese, but that's still good enough to earn the government's approval. Huawei could be in a similar position with its Android fork.

So many people
A million mobile operating systems have failed to stand up to Android and iOS, but because Huawei has the Chinese government on its side, the bar for HarmonyOS is lower than it has been for any other competitor. Indeed, HarmonyOS might actually have a shot at survival within China. With nearly 1.4 billion people—about 18 percent of the world's population—China is more than big enough to be its own insulated market. Heck, Sina Weibo, China's clone of Twitter, has more users than actual Twitter.

HarmonyOS could, if it wanted to, be China's version of Android. For now, it definitely seems to be a version of Android.

https://arstechnica.com/gadgets/2021/02/harmonyos-hands-on-huaweis-android-killer-is-just-android/
 
If it is free of any enforcable legal issues, then it's a new OS. That is the key. An interesting thing to do would be to make all Harmony OS apps compatible with Android, but Android only apps locked out of Harmony OS to incentivize developers to use Harmony OS.

Author is also totally ignorant of the networking innovations present such as the move towards an iOS style display of all Huawei associated IoT devices the way Apple has started to use iOS to display all Apple associated IoT devices on one single master device.

This is not unexpected though as the author has an accounting/business background with most of his "software" experience being in Microsoft Excel and PowerPoint, making him unqualified to judge a software product, particularly at the firmware level.
 
HarmonyOS is suposse to be a just a scalable microkernel, that Huawei is developing to put it in everything, from microcontrollers to driveless cars, including their smartphone, the kernel is the part of an OS that interact with the hardware a very low level.
i don't think they are going to drop AOSP for now in their smartphones, even if they have to run the OS in a emulator in the kernel until they develop their own ecosystem and even in the future they will need to have a low level emulator to run android apps.
 
Version of Android? Too bad in future, harmony apps will be lock out of android. :enjoy:
 
Its a new OS alright just like Amazon Fire OS which is also an andriod fork. But the way Huawei went about it is really embarassing for both Huawei and China. It is clear to me that corporate china still has miles to go when it comes to communication.
 
Apple requires developers to own a Mac for the iOS SDK, but from there it's just a simple trip to the App Store to download Xcode.

Yes, spend thousands of dollars on a Mac and a trip to an apple store which is halfway across the planet for most people outside of Europe and the USA:
1612965683933.png
 
Huawei is China's—and formerly the world's—largest smartphone vendor, and over the past 18 months, it learned an important lesson: the company can't rely on the US supply chain. In 2019, the US government bannedUS exports to Huawei, which cut the company off from access to most chip and software suppliers. Building a phone is hard without access to key parts and apps. Huawei's latest Q4 2020 numbers show its phone sales in free fall, dropping 42 percent year-over-year.

Because of this, Huawei wants independence from the worldwide smartphone supply chain. While hardware independence is something the company needs to work on, Huawei also needs to get free of Google's software. So, as many companies have tried to do before it, Huawei hopes to make an Android killer.


The company's attempt at an in-house OS is called "HarmonyOS" (also known as "HongmengOS" in China). "Version 2" was released in December, bringing "beta" smartphone support to the operating system for the first time. Can Huawei succeed where Windows Phone, Blackberry 10, Sailfish OS, Ubuntu Touch, Firefox OS, Symbian, MeeGo, WebOS, and Samsung's Tizen have all tried and failed?

To hear Huawei tell the story, HarmonyOS is an original in-house creation—a defiant act that will let the company break free of American software influence. Huawei's OS announcement in 2019 got big, splashy articles in the national media. CNN called HarmonyOS "a rival to Android," and Richard Yu, the CEO of Huawei’s consumer business group, told the outlet that HarmonyOS "is completely different from Android and iOS." Huawei President of Consumer Software Wang Chenglu repeated these claims just last month, saying (through translation), "HarmonyOS is not a copy of Android, nor is it a copy of iOS."

That makes HarmonyOS sound super interesting. Naturally, we had to take a deep dive.


After getting access to HarmonyOS through a grossly invasive sign-up process, firing up the SDK and emulator, and poring over the developer documents, I can't come to any other conclusion: HarmonyOS is essentially an Android fork. The way that Huawei describes the OS to the press and in developer documents doesn't seem to have much to do with what the company is actually shipping. The developer documents appear almost purposefully written to confuse the reader; any bit of actual shipping code to which you hold up a magnifying glass looks like Android with no major changes.

The phrase "fake it till you make it" is often given as motivational advice, but I've never seen it applied to OS development before. If you've ever seen a modern Huawei Android phone, HarmonyOS is largely the same thing... with a few strings changed. So while there's not much new to see, we can at least dissect HarmonyOS and debunk some of Huawei's claims about its "brand-new" operating system.

But first—a two-day background check?!
Before we dive into HarmonyOS, we have to actually getHarmonyOS, which is an incredible hassle. Supposedly some Huawei Android phones like the P40 Pro can be switched over to HarmonyOS through some kind of closed beta. This is limited to China, though. For me, getting HarmonyOS meant finding my passport.

For comparison, let's first talk about how other vendors serve up their operating system SDKs. For Android, you Google "Android SDK" from any desktop computer, click the first link, and press the download button. Apple requires developers to own a Mac for the iOS SDK, but from there it's just a simple trip to the App Store to download Xcode.

Before you can try Harmony OS, by contrast, Huawei requires you to pass a two-day background check. They even want a picture of your passport!


Huawei requires you to go to Huawei.com, make an account, and then sign up to be a developer by passing "Identity verification." This means sending Huawei your name, address, email, phone number, and pictures of your ID (driver's license or passport) and a photo of a credit card. You must then wait one or two business days while someone at Huawei manually "reviews" your application. Huawei helpfully notes that it will not charge your credit card.

Huawei's docs say that "the ID card, passport, driver’s license, and bank card are used to verify and match your identity information." OK, but why? Why does Huawei want to know everything about me first? And why does that take two days?


Even if you try to skip Huawei's horrible sign-up process and "pirate" the Harmony SDK by downloading it from somewhere else, the SDK won't run the emulator until you sign in with an account that has passed the two-day background check.

Can you imagine what a potential HarmonyOS developer will think when they get to this step? If you're an established developer in an app ecosystem, it's normal for the ecosystem owner to collect some identifying and financial information. You probably want a developer to be able to charge money for their app, which means you need to be able to transfer money to a bank account, and the ecosystem owner might be responsible for tax collection. Right now, though, we are miles away from that situation with HarmonyOS. At this point, which is just downloading the SDK for the first time, your typical downloader will be a curious developer who is just beginning to investigate Huawei's OS. (Signing up for "Merchant Service" is actually a totally different Huawei process.)

Nosy
This is supposed to be a brand-new operating system, and Huawei's position at this point would commonly be one of openness toward any potential developers. Google's one-click, anonymous download for the Android SDK, on Windows, Mac, and Linux, is the model companies should be emulating. Huawei is instead making this as hard as possible, and it's easy to imagine a potential developer balking at the ridiculous and intrusive download process, closing the tab, and going back to Android and iOS development. It's the worst first impression of an operating system I've ever seen. As a developer, you've got to wonder if Huawei will always be this difficult to work with in the future.

That said, I did all this.


In the spirit of taking one for the team, I shamefully sent Huawei a picture of my passport and credit card. My information probably went God-knows-where in China; it felt like a violation, and you're welcome. After a two-day wait, my social credit score was apparently high enough that I was granted access to Huawei's precious operating system. (Hopefully, Beijing doesn't have "a file" on me now.)

Now, let's see what we got after all this effort.

HarmonyOS: Android 10 with no discernible changes


After jumping through all these hoops, you don't actually get to run the emulator locally on your machine. Once you log in to the SDK, you can fire up a "remote emulator." Basically, it's HarmonyOS if it ran on Google Stadia—you'll get a laggy, interactive video stream of the OS sent to you from somewhere on the Internet. The emulated phone starts up in Chinese, reports a SIM card with a China +86 number, and is on a network called "华为内网" (in English: "Huawei Intranet"), so I'm going to guess this is in China somewhere. Location is blocked, and any browser access seems to be disabled as well. After some testing, I am pretty sure this thing is a physical phone plugged into a testing rig; if I enable USB debugging, which would interrupt any existing USB connection, the whole emulator dies and I get disconnected. There would be no reason for that to happen if this was a purely software virtual device.

Anyway—if the pictures in this piece look a bit weird, keep in mind you're seeing screenshots of a 720p video stream that was beamed in from halfway around the world.

You get your first inkling of HarmonyOS' Android-ness when you boot up the phone. Indeed, you're presented with an exact copy of Huawei's "EMUI" Android skin, but the "About" screen now says "HarmonyOS" and has been scrubbed of all mentions of "Android." The official line is that Huawei ported over the EMUI Android skin to HarmonyOS, except that all the bits under the Android skin also appear to be Android.


Just a trip to the app info screen will confirm that this phone runs Android. You'll see apps like the "Android Services Library," "Android Shared Library," "com.Android.systemui.overlay," "Androidhwext," and on and on, for about 10 different entries. It looks like some packages got hit with a find-and-replace, changing "Android" to "HarmonyOS." If you look at the app info for the "HarmonyOS System" package, you'll see it uses the Android system icon (the "Android green" color is a dead giveaway) and a label saying "version 10." Uh, isn't HarmonyOS on version 2?

The "version 10" here is a reference to Android 10, which seems to be the version HarmonyOS is based on. If you visit the "Huawei App Gallery" (which has a ton of apps... because it is just an Android app store), you can choose from any number of "system info" apps, which will all identify the phone as running "Android 10 Q."


HarmonyOS is also way, way too complete for a beta. We know what an in-development operating system should look like—something like, for instance, Google's Fuchsiaor Samsung's Tizen. You should see nonexistent app selection, limited features, and other rough edges. If HarmonyOS really is a "new" operating system, Huawei's engineers are doing an incredible job! They have even perfectly copied every single Android 10 feature! There is a great gesture-navigation system, a million settings, a permissions system, NFC tap-and-pay support, dark mode, and a killer notification panel!

Huawei says commercial HarmonyOS phones could launch this year, and I believe it. That is totally possible when you are just shipping Android.

For a brand-new operating system that isn't out yet and has zero users, the developer support Huawei has lined up is also incredible! In the Huawei App Gallery, you'll see apps from Google, Microsoft, Amazon, TikTok, WeChat, Tencent, Baidu, Weibo, Evernote, and more. You'll also find thousands of app reviews dating back several years from users who can't possibly exist, because HarmonyOS is brand-new and isn't Android, right?

Huawei's main contribution to HarmonyOS is the same thing it contributes to its builds of Android in China: Huawei replacements for the Google Play ecosystem. Very few of Google's services are available in China. There is no Play Store, no Google Play Services, none of Google's usual Android apps (other than a special Wear OS helper app). In China, it's up to every OEM to supply its own app store, and Huawei has been doing this for years. Huawei has "Huawei Mobile Services," consisting of a pretty complete package of the Huawei App Gallery, cloud-based accounts with syncing of contacts, photos, calendars, notes, and more, as well as a sturdy cloud portal for all your data at cloud.huawei.com. None of this has anything to do with HarmonyOS, though.


All open source operating systems, Android included, stand on the shoulders of giants and pull in tons of code from upstream projects. Android uses the Linux kernel, the F2FS and Ext4 file systems, Libc and Libc++, Java, OpenGL and Vulkan, OpenSSL, Webkit, and a million other projects. No one would argue that Android isn't its own operating system, though. Android also contains a ton of Google-developed code, like (originally) heavy forks to the Linux kernel, the Dalvik VM/Android Runtime, built-from-scratch touchscreen code and a constantly evolving touch interface, phone call support, and more.

After hours of poking around on HarmonyOS, I couldn't point to a single substantive change compared to Android. Other than a few renamed items, nothing is different. If anyone at Huawei wants to dispute this, I would welcome an example of a single thing in the emulator that is functionally or even aesthetically different from Android. If anyone wants to cry "it's just a beta!," Huawei says this OS will be shipping in commercial phones this year. There does not appear to be time to do a major overhaul from "Android" to "Not Android."


Forking Android and launching your own rebranded operating system is totally fine. But be upfront about that. Say "HarmonyOS is a fork of Android" instead of "HarmonyOS is not a copy of Android." Don't call HarmonyOS "all-new" when pretty much the opposite is true.

Huawei is basically in the same position as Amazon with FireOS, which is also a fork of Android. Here's how Amazon deals with that: the first two sentences of the "Fire OS Overview" page on developer.amazon.com read, "Fire OS is the operating system that runs Amazon's Fire TV and tablets. Fire OS is a fork of Android, so if your app runs on Android, it will most likely run on Amazon's Fire devices too." A search for "Android" on that first Fire OS page brings up 67 results. As of press time, a search for Android across the entire HarmonyOS documents collection brings up zero results. On the "About" screen of the HarmonyOS emulator, there is an "open source licenses" link, but the page does not load.

Android is a trademark of Google, so Amazon and Huawei can't use the name in promotional materials. But that doesn't mean you shouldn't be upfront about it in your developer documents and when speaking to the public. Not doing so feels like plagiarism.



Huawei’s dev documents are psychological warfare
Since the emulator is a wash, what about the source code, documentation, and SDK? HarmonyOS is supposedly open source, or at least, there is an "open source version" of HarmonyOS called "OpenHarmony," which seems to have no connection at all to what ships on the emulator. The current source code for OpenHarmony identifies itself as "Version 1.0" and is only for IoT devices, while the beta version for phones and the SDK is "HarmonyOS 2.0." So at the very least, the source code is also out of date.

OpenHarmony 1.0 and the "HarmonyOS 2.0" emulator do not seem related. The OpenHarmony repo uses Huawei's LiteOS IoT microkernel, and the apps in the repo are not Android apps. The HarmonyOS 2.0 emulator, because it is Android, is based on Linux, and all the apps are Android apps. Huawei's documentation claims that both kernels are supported, but it's hard to see how the two would ever be the same product or why you would want to call them the same product when they seem to have nothing in common.


The docs for HarmonyOS are available here, and please, I implore you, read some of them. Read the developer documents and ask yourself, "Does this make sense?" Or maybe, "Is this trying to communicate useful information in an honest, straightforward manner?" Most of the time, the answer is "no." Huawei's developer documentation is full of what I can only describe as nonsense. Many sentences are just buzzword-filled drivel.

“Super virtual”
Let's start with the major features of the OS on basically page one of the docs, the "Technical Features" page. The Book of Huawei reads, "The distributed device virtualization platform enables cross-device resource convergence, device management, and data processing so that multiple devices jointly function as a super virtual device." You can click through the link to find out what the heck a "super virtual device" is, and you'll get the "glossary" definition that it "integrates the capabilities of multiple devices through the distributed technology into a virtual hardware resource pool and then centrally manages and schedules these capabilities based on application requirements."

I think Huawei is describing... a network? The writing style of developer documentation usually does not bounce between vague marketing hype-speak like "super virtual device" and what sounds like patent application legalese. Understanding an operating system is difficult enough without all the flowery language obfuscating what is really going on.


Let's read some more. The four top-line "technical features" in the HarmonyOS documentation—those things that should be the most important parts of the operating system—are all these "distributed" something-or-others that all seem to describe mundane network capabilities that have been possible on any operating system for years.

  • The "Distributed Virtual Bus" is "a communication base for interconnecting devices, such as smartphones, tablets, wearables, Smart TVs, and head units." The "typical scenarios" for the Distributed Virtual Bus can "connect smartphones to food processors, range hoods, air purifiers, air conditioners, lights, curtains, and more." So like, Bluetooth? Wi-Fi? How is this a top-line feature of your operating system?
  • The aforementioned "Distributed Device Virtualization" will let users "connect their smartphones to smart TV, with the gravity sensor, acceleration sensor, and touch control capabilities of the smartphone virtualized as a remote control." Many games and smart TV OSes have been doing this forever, and again, this just sounds like Wi-Fi.
  • "Distributed Data Management" will "project a document from their smartphone to smart TV, and perform operations such as page-turning, zooming, and graffiti on the document on the smart TV." This is no different from the previous gaming option, Huawei!
  • "Distributed Task Scheduling" is "designed based on technical features such as distributed virtual bus, distributed data management, and distributed profile. It builds a unified distributed service management mechanism (including service discovery, synchronization, registration, and invocation), and supports remote startup, remote invocation, remote connection, and migration of applications across devices." That was a lot of words to say very little, but the "typical scenarios" include this one: "After ordering takeaway food via a smartphone, users can continue checking food delivery information on their watch." Amazing.
These aren't hand-picked to be the worst examples of Huawei's writing; these are top-line bullet points that should be the most important parts of your OS. Yet the documentation describes basically nothing. I really do not think there is any meaning behind these words; perhaps Huawei is just faking it?

Each of these terms is not described with much additional detail in the full documents. Huawei likes to define an OS concept and then immediately move on, providing no extra details of what it actually is or does. If you think a "distributed virtual bus" is an actual thing for "connecting to a toaster" or whatever, what network technology does it use? How are users authenticated? What APIs do the devices use to communicate? How would you actually integrate this into a physical toaster? What does the interface look like? How would I plug into this capability with my app? How is it better or different from Bluetooth and Wi-Fi? None of this is ever answered.


The solid parts of the documentation that you could actually verify mostly fall into two categories: 1) things from Android and 2) things that do not exist yet. The "Application Fundamentals" page claims that HarmonyOS has a new app format called "App Packs" with ".app" extensions, but everything on the emulator is a regular Android .apk file.

I built a sample app with Huawei's SDK, hoping to see an "App pack." It spit out a .hap (HarmonyOS Ability Packages) file, which is apparently part of an "App Pack." Great! Now, Android .apks are just standard .zip files with a new extension, and changing the extension to .zip will let you unzip an app and preliminarily poke around in it. What happens if you try this trick with a .hap file? It unzips! And it's full of Android code. All the Android decompile tools work, too, because HarmonyOS is Android. HarmonyOS apps made in the SDK target Android API 29, aka Android 10. Like all of Huawei's documents, the Application Fundamentals page does not mention this Android connection at all.

The Application Fundamentals page was really my last hope of finding anything of substance in the docs. I picked it because I vaguely remembered that Huawei had previously released the HarmonyOS "ARK Compiler," and the company gave a big presentation about it in 2019. As basically the earliest component of HarmonyOS, surely there would be some meat here, right? The HarmonyOS Application Fundamentals page now doesn't mention the ARK Compiler at all. Googling around for what in the world happened to it reveals that developers also criticized the ARK Compiler as "a scam" at launch and said it was "not even half-finished." The original page for the ARK Compiler now 404s, and Huawei's repository for the ARK Compiler is dead, too.


Huawei's SDK, by the way, is called "DevEco Studio" and—I'm sure you can guess this by now—seems to be the same base components of Google's Android Studio SDK, along with lots of code taken from Android. It's based on the Jetbrains IntelliJ IDE with the Gradle build system and mostly looks and feels identical to Android Studio. Peek at the "third-party software" list on DevEco Studio's About screen, and you'll find 27 packages that start with "Android," like the Android SDK Tools, the Android DEX library, the Android Gradle plugin, and more. At least it will be familiar to developers!

I could go over more of the development docs, but when none of it actually applies to the code Huawei is shipping, I don't see a point.

Just branding? That might be enough for China
On the technical side, we don't seem to be accomplishing anything here. Being a fork of Android still makes you mostly dependent on Android for new features. So far, Huawei hasn't shown any ability to take Android in a different direction, and like with Amazon and Fire OS (which is still based on Android 9), right now it seems like forking will just result in an inferior Android build with slower updates. If Huawei really wanted to reduce its reliance on US software, it hasn't actually done that.

This whole effort seems to be nothing more than a branding exercise. Huawei can claim HarmonyOS as its own and say that it isn't reliant on US software, and it can hope people will believe those claims. "Saving face" seems to be the only reason HarmonyOS exists, and that also explains why the company is so reluctant to be upfront about Harmony's Android lineage.


Legally, Huawei doesn't have to stop using Android. Open source, publicly available software isn't subject to US export restrictions. Huawei is already using the Android source code without Google's ecosystem in China, and there's nothing stopping Huawei from continuing to do that. The only thing Huawei can't do is use the closed-source Google apps.

Huawei says it is willing to license HarmonyOS to other smartphone manufacturers and become a real OS vendor. If Huawei really goes through with this, it's not clear why any company would buy into HarmonyOS, since right now HarmonyOS is just "Android, but slower." With the current US restrictions in place, no US-based developers could submit apps to a Huawei store. (Microsoft is an exception.)

This matters less within China itself, where top worldwide apps from outside the country are often banned, but internationally, HarmonyOS doesn't stand a chance. Having Huawei as your OS vendor means no apps from Facebook, Snapchat, Netflix, Hulu, Amazon, Twitter, Roku, SoundCloud, Pandora, Amazon, Uber, Lyft, Tinder, Shazam, and more. Google might be the single greatest enforcer of the current smartphone OS duopoly (just look at what the company did to Windows Phone), and without apps like Gmail, Chrome, YouTube, the Google Assistant, and Google Maps, Huawei's Android fork would be dead on arrival outside of China.


The biggest driver of demand for HarmonyOS, however, might be the Chinese government. Beijing's response to the US ban has been to aggressively push for more reliance on local technology. In 2019, China told government offices and public institutions they had three years to move off PCs that use foreign technology and software, kicking off a massive transition for PC equipment in China. The decree is called the "3-5-2" policy, for the expected pace of replacing 30 percent of PC equipment in 2020, 50 percent in 2021, and 20 percent in 2022. China is building its own agonizingly slow x86 CPUs and dumping Windows for homegrown operating systems like "Kylin" and "NeoKylin." These are Chinese-controlled Linux distributions that look like clones of Windows, often Windows XP.

The 3-5-2 policy is strictly for government desktop and laptop computers. Right now, Android is really the only game in town for Chinese phone manufacturers, but Huawei and the Chinese government may want to pretend that HarmonyOS is a Chinese Huawei product and not an American Google one. Kylin OS, as a Linux distro, is just the usual stack of open source components and therefore not particularly Chinese, but that's still good enough to earn the government's approval. Huawei could be in a similar position with its Android fork.

So many people
A million mobile operating systems have failed to stand up to Android and iOS, but because Huawei has the Chinese government on its side, the bar for HarmonyOS is lower than it has been for any other competitor. Indeed, HarmonyOS might actually have a shot at survival within China. With nearly 1.4 billion people—about 18 percent of the world's population—China is more than big enough to be its own insulated market. Heck, Sina Weibo, China's clone of Twitter, has more users than actual Twitter.

HarmonyOS could, if it wanted to, be China's version of Android. For now, it definitely seems to be a version of Android.

https://arstechnica.com/gadgets/2021/02/harmonyos-hands-on-huaweis-android-killer-is-just-android/
:sarcastic: :sarcastic: :sarcastic: :cheers:
So Huawei Harmony OS is already instilling fear into its competitors.
That is what making Harmony OS so amazing. It is the next generation OS.
As the developer claimed previously, Its design allows to be fully compatible with the existing Android OS, so what is so strange? The question is will the existing Android OS be compatible with Harmony applications?
We will have to wait as Harmony capabilities are being explored and is still evolving.

Reading the above is a complete waste of our time.
 
Before we dive into HarmonyOS, we have to actually getHarmonyOS, which is an incredible hassle. Supposedly some Huawei Android phones like the P40 Pro can be switched over to HarmonyOS through some kind of closed beta. This is limited to China, though. For me, getting HarmonyOS meant finding my passport.

So in summary this guy is borderline retarded and the two points he has is complaining that they are currently focusing supporting for vendors who know what they are doing first to get the economy rolling before throwing it a low end consumers riddled with people like him who dont actually know what they are doing exactly for that reason and secondly thinks/acts like reusing the propetiary UI developed by Huawei, which would be retarded to waste the opportunity to do so, somehow makes the underlying OS or even the kernel itself a completely unrelated American linux distro. Which for always carefully omitted context is just a fork itself and no bit better than Harmony in that regard either way.

The fact hes paid to write an essay about it without any clue what hes doing means someone is afraid of Huawei's new OS
 
Last edited:

Back
Top Bottom