Moon – 4.0.0-alpha.1

Why so much extensions?

It would be difficult to find the block you’re looking for all inside one component so I made them into categories… Yes you could search from the in the bar, but I don’t think many people use that. As suggested, they will all have different package names instead of being a bundle. You can take a look at the link below if you’d like to know when this will be out,

1 Like

great! however unfortunately somehow I was not able to find it in your latest Github link… can you please post a link to the documentation?


1 Like

:unicorn: 2020-9 is out!

I’ve heard your feedback and things have changed. Performance, permissions, and more has changed thanks to you!

What if a bug occurs?

Report it at the repository issues page.

What’s new?

There is a new improved site, you can find it here. Now download and read what’s new about Device M on the Hub :sunglasses:!

Where to download Device M?

- The Hub / Assets (at the bottom) / *.aix


hello, I was wondering what permission should I call to use this extension

If you’re downloading from The Hub :sunglasses: then you don’t need to request permissions.

Page not loaded

How can I download this extension @hammerhai Nathan

I will have an update out today, so you won’t have to wait long. The AIX files will be able to be found in my next post in a few hours.

1 Like

ok ill be waiting

Why does the git repository no longer exists. I downloaded all of the extensions already.

These are all great questions! They will be answered in a few hours when I am done with German. Thank you for your patience.

I’m pulling the plug :slightly_frowning_face:

The plug is no longer being pulled! See more by going to this post!

Device M’ was a pleasant project to work on last year. Although I did have plans to previously “pull the plug” on Device M’, those plans have been trashed and have ever since changed… According to this post. Since Device M’ is now open-sourced, I would like to thank my Beta Testers! You were all wonderful!

Thank you…


It ends here, with v3.0.0

See more on why it doesn’t end here, by going to this post!


  • Color
    • Convert a color to a hex code using IntToHex
    • Determine if a color is light using IsColorLight.
    • ParseColorToInt was renamed to HexToInt.
  • Platform
    • Find out the system-wide dark mode status using IsNightModeEnabled.
    • Get the system-wide accent color; Android Q+ (expected to work on Pixel devices, failed on Samsung devices, works on OnePlus devices (At least the OnePlus 8)).


  • PowerM
    • Battery data is no longer provided as separate blocks, it’s now given as a dictionary. Go here to preview all possible values.
  • Storage
    • Behavior
      • Paths should include a slash in the front of them. For example /directoryName/content.json. directoryName can be replaced by an existing folder, often “files” or “cache”, or a custom folder name!
    • Creating new files isn’t as simple as before. There’s a way to append content now! Go here to preview an example.


  • All
    • The minimum Android SDK is now 21 which allowed for cleanup of unnecessary code.
  • App
    • Merged with PackageOps
  • PackageOps
    • Build size improved by 94%.
    • InstallAPK works with Kodular apps; Fully tested.
    • packageId arguments can be filled with “.packageName” (without the quotes), “getPackageName” (without the quotes), “$this” (without the quotes) to get the calling app’s package name. Go here to preview an example.


  • All extensions
    • For current and future extensions of mine, I am trying to create them without needing permissions so they don’t cause a burden to the developer or user. No permissions should be asked with an exception to the ConnectivityX, Intents and Package Ops extensions.
Scoped storage

The package operations and storage extensions both come with the inclusion of scoped storage. Here’s how it works with both extensions. Go here to preview the choices.

  • When setting the Model property, only accessible from the Designer, to Partial, then the path for Android P and below will be /data/data/package. Android Q+ will rely on /storage/emulated/0/Android/data/package.
  • When setting the Model property, only accessible from the Designer, to Invisible, then the path for all of Android will be /data/data/package. This includes Android P/Q and below/above!
  • When setting the Model property, only accessible from the Designer, to Scoped, then the path for Android P/Q and below/above will be /storage/emulated/0/Android/data/package.


  • Documentation
    • Unfortunately just now I noticed that none of the blocks have descriptions. You will have to work based on what the block name is and test here and there until you find the desired result.
  • PackageOps
    • If you’re planning on installing version 3.0.0 and 3 of PackageOps, please go here. A one-time patch was released to fix an issue relating to permissions.
    • Your project will break! Events have been removed and blocks now return a result IMMEDIATELY!
    • VersionCode has been renamed to VariantCode.
    • VersionName has been renamed to VariantName
  • Storage
    • Some events may break your app since I’ve rewritten many of them. Go here to preview the new events.
    • Some property blocks may break your app since they’ve been renamed.

Now, get to upgrading!

io.gitlab.stormifire.devicem.packageops.aix (59.1 KB)
io.gitlab.stormifire.devicem.platform.aix (32.7 KB)
io.gitlab.stormifire.devicem.powerm.aix (32.7 KB) (35.0 KB)
io.gitlab.stormifire.devicem.time.aix (27.4 KB)
io.gitlab.stormifire.devicem.colors.aix (28.9 KB)
io.gitlab.stormifire.devicem.connectivityx.aix (40.6 KB)
io.gitlab.stormifire.devicem.intents.aix (32.4 KB)

Visit the source.


See this post


At least I have downloaded the extensions before. All 9 extensions.

That link dosen’t work. Is this a trick? :joy:

@hammerhai There are only 8 extensions listed in your post. I have all 9 extensions which were formerly on GitHub.

@hammerhai, were there really 9 extensions formerly in GitHub? Those extensions were amazing! Because of this public link stuff, I moved to MIT App Inventor and was looking for some extensions to advance my apps and your extensions helped my apps. There was no extension like any other to compete with Device M Manager and/or the Package Ops and any other extensions.

1 Like

Patch 3.0.1 for PackageOps

  • Creates a new way internally to install APKs for newer and older Android versions (you won’t notice a difference).
  • This is only a minor patch adding the “Install Unknown Apps” permission to the PackageOps extension. Previously this would not work so you could not prompt the user to install a specific APK.

io.gitlab.stormifire.devicem.packageops.aix (59.2 KB)


@hammerhai I forgot to tell this about your extensions. This time what I am saying in this reply is on topic.

@hammerhai, your new extensions have a bug with the icon. I am using MIT App Inventor and see the link below. It is with the PackageOps extension as of what I know. Your image should have been smaller. Have you tested your extension before uploading them to the GitLab Repository or that post from that other topic?

View Here