Moon – 4.0.0-alpha.1

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

Original reply (includes v3.0.1 and v3.1.1)

Patch 3.0.1

Patch 3.0.1 is for all extensions, excluding PackageOps. Source is not yet publicly available.

  • Bug fixes

Patch 3.1.1

Patch 3.1.1 is only for PackageOps. Source is not yet publicly available.

  • Added Activities, which will return the activity names in an application from an APK file or package name as a list.


  • Bug fixes


io.gitlab.stormifire.devicem.colors.aix (16.7 KB)
io.gitlab.stormifire.devicem.connectivityx.aix (25.9 KB)
io.gitlab.stormifire.devicem.intents.aix (19.2 KB)
io.gitlab.stormifire.devicem.packageops.aix (37.1 KB)
io.gitlab.stormifire.devicem.platform.aix (20.1 KB)
io.gitlab.stormifire.devicem.powerm.aix (19.5 KB) (21.7 KB)
io.gitlab.stormifire.devicem.time.aix (15.4 KB)

Android 12 & Extended Support

Hello everyone!

Recently the Android 12 Developer Preview was released, and APIs are already changing. With that happening, I am keeping a close eye on what’s changing for a specific reason. That is, I’ve decided that I will continue releasing major upgrades to Device M’. It may come as a surprise, but it is to simply keep up with consumers keeping their devices longer and OEMs supporting them longer.

Q & A

Summaries for the questions are in bold.

Q - Will DeviceM be pulled from GitLab?
A - Yes. It will be moving to GitHub indefinitely and the package name will be changing. This process won’t take place immediately, but the earliest for this to happen is August 2021.

Q - Why did you revoke major upgrades from Device M’ in the first place?
A - Normally this happens with all my extensions, where I discontinue them to a certain extent and then offer regular maintenance support up until a certain time… barely even 1 month in some cases. However, at the time of releasing v3.0.0 of Device M’, I never thought that APIs it leverages, would change. Though I will be watching what APIs change, and some APIs that Device M’ uses might change, I would still like to offer support for Android 12!

Q - Will there be support for AndroidX in time for Kodulars next release?
A - Yes! Modules that require AndroidX for the upcoming release of Kodular will be released shortly after the official release.

Q - How long will this extended support be extended for?
A - I haven’t determined the length of extended support however it’s likely to continue until developers are dissatisfied with continued updates.

Q - Will Former Beta Testers reconvene?
A - No. With Device M’ now being open-sourced, there is no need for “internal” testing. Instead there will be weekly “Developer” builds released on GitHub and feedback can be offered through the “Discussion” area.

The end :smiling_face_with_three_hearts:

I hope you find good in extended support for Device M’ and offer valuable feedback for what you’d like to see.

Have a nice rest of your day/night!


github link is not working now, please check.

That’s because it’s here…

Congratulations this will also help me alot

2021 Appathon

Hi all!

Following is a line from the 2021 Appathon FAQ.

You may use any extensions from MIT, or any free extension so long as you include a note from the extension author that it can be redistributed by MIT as part of the competition.

I’m not sure if this applies to free extensions, as I’m a bit confused by the sentence, however since my PMs are closed… Device M is allowed to be redistributed by MIT as part of the competition.

Good luck and have fun!

:package: Moon 4.0.0-alpha.1

Hi all,

Today I’m announcing the release of Moon 4.0.0-alpha.1. Although all you see is an icon and name change, many more things have changed internally. A new package name, no storage permissions, and support for Snow Cone. I’m also announcing a new update schedule for Moon – The all in one informative, which will include support for all of Android going forward.

Android going forward

As said in the introduction of Moon, support for Android going forward will be extended. Again as before, this is purely because consumers are keeping their devices longer and OEMs are extending time for OS upgrades & security updates. To prevent any other extensions from being made related to Moon by me, it will continually be updated.

  • Alpha releases will be the least stable with the most amount of APIs being added, changed, or removed. No fixes will be issued.
  • Beta releases will contain APIs that will remain unchanged until the next alpha release. Fixes will be released for issues.
  • Stable releases will have the greatest stability of all three releases.

Release schedule for '21

We’re over little over a half way done with the year and only 3 updates were released for “Device M (:face_vomiting:)”. This has changed slightly with Moon.

You might have to open the above image in a new tab to see it better, but here’s the summary.

  • After January '22, a new release schedule will be announced as a discussion on GitHub.
  • Moon will move to a half-year release schedule. This means that Moon will spend about half of the year being developed, with the other half having nothing done. It will only receive stable builds every half-year, or about every 6 months. It’s to mainly keep up with Android releases.

To explain the release schedule for this year going into next.

  • From July '21 to September, Moon will be in its early development stage. These will be alpha builds, they will be unstable and block availability will vary greatly. This is the time where APIs will be added, changed, and removed. Bug fixes will be issued here and there.
  • From October to December, Moon will be in its stable preparation stage. APIs will not be added, changed, or removed. Block availability shouldn’t vary. Bug fixes and tweaks will be issued monthly.
  • In January '22, a stable build of Moon will be released.

These builds will be released in the Moon repository on GitHub, feedback would be greatly appreciated through the discussion relating to the released build. From now on, most builds will be released on GitHub, keep an :eye: there instead of here for any updates, no replies will be posted here unless absolutely needed!

NOTE: Feedback can’t be given with this release as there’s really nothing to give feedback on. Discussions can be found here.

What’s available with Moon 4.0.0-alpha.1

The modules that are available in this update are listed below.

  • Platform – A now Snow Cone supported module.
  • Power – An already Snow Cone supported module.

What’s new with Platform 4.0.0-alpha.1

com.github.flailingoctopus.moon.platform.aix (25.2 KB)


NOTE: “unknown” will be returned if your API isn’t supported.


  • The package name is now com.github.flailingoctopus.moon.platform


  • 𝙱𝚊𝚜𝚎𝚋𝚊𝚗𝚍
  • 𝙳𝚎𝚟𝚒𝚌𝚎𝙰𝚌𝚌𝚎𝚗𝚝𝙲𝚘𝚕𝚘𝚛
  • 𝙳𝚎𝚟𝚒𝚌𝚎𝙽𝚊𝚖𝚎
  • 𝙸𝚍
  • 𝙸𝚜𝙳𝚎𝚟𝚒𝚌𝚎𝙳𝚊𝚗𝚐𝚎𝚛𝚘𝚞𝚜
  • 𝙸𝚜𝙽𝚒𝚐𝚑𝚝𝙼𝚘𝚍𝚎𝙴𝚗𝚊𝚋𝚕𝚎𝚍
  • 𝚂𝚞𝚙𝚙𝚘𝚛𝚝𝚎𝚍𝟹𝟸𝙱𝚒𝚝𝙰𝙱𝙸𝚜
  • 𝚂𝚞𝚙𝚙𝚘𝚛𝚝𝚎𝚍𝟼𝟺𝙱𝚒𝚝𝙰𝙱𝙸𝚜
  • 𝚂𝚢𝚜𝚝𝚎𝚖𝙰𝚟𝚊𝚒𝚕𝚊𝚋𝚕𝚎𝙵𝚎𝚊𝚝𝚞𝚛𝚎𝚜
  • 𝚂𝚢𝚜𝚝𝚎𝚖𝚂𝚑𝚊𝚛𝚎𝚍𝙻𝚒𝚋𝚛𝚊𝚛𝚢𝙽𝚊𝚖𝚎𝚜
  • 𝚃𝚒𝚖𝚎

What’s new with Power 4.0.0-alpha.1

com.github.flailingoctopus.moon.power.aix (24.5 KB)



  • The extension name is now “Power”
  • The package name is now com.github.flailingoctopus.moon.power


  • 𝙾𝚗𝙿𝚘𝚠𝚎𝚛𝙲𝚘𝚗𝚗𝚎𝚌𝚝𝚎𝚍
  • 𝙾𝚗𝙿𝚘𝚠𝚎𝚛𝙳𝚒𝚜𝚌𝚘𝚗𝚗𝚎𝚌𝚝𝚎𝚍
  • 𝙾𝚗𝙿𝚘𝚠𝚎𝚛𝚂𝚊𝚟𝚎𝙼𝚘𝚍𝚎𝙲𝚑𝚊𝚗𝚐𝚎𝚍
  • 𝙾𝚗𝙱𝚊𝚝𝚝𝚎𝚛𝚢𝚄𝚙𝚍𝚊𝚝𝚎

are you saying FILe managar

Why removed


1 Like

Hi @Jinx,

𝙾𝚗𝙱𝚊𝚝𝚝𝚎𝚛𝚢𝚄𝚙𝚍𝚊𝚝𝚎 was removed in favor of 𝙱𝚊𝚝𝚝𝚎𝚛𝚢𝙲𝚑𝚊𝚗𝚐𝚎𝚍! The rest were removed because how they were to be used couldn’t really be defined. I’ve added a way that you can (sorta) determine if 𝙾𝚗𝙿𝚘𝚠𝚎𝚛𝙲𝚘𝚗𝚗𝚎𝚌𝚝𝚎𝚍 or 𝙾𝚗𝙿𝚘𝚠𝚎𝚛𝙳𝚒𝚜𝚌𝚘𝚗𝚗𝚎𝚌𝚝𝚎𝚍 would be delegated.


Hello everyone,

I apologize to those of you who this announcement may be an inconvenience to, but Moon will not be receiving any maintenance, major, or minor upgrades. The reasoning behind this change of course will be announced at a later date in a separately created topic.

It’s been removed from GitHub permanently.

Sorry again.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.