I might have discovered something awesome here. I've been able to install apps with their own icon on the dashboard, without having to change the AndroidManifest.xml package name.
You still need to decode and repack the APK, but I've even found some that install without doing any prep work!
If you wanna try it out, here's the general battleplan. Please note, I don't take any responsibility if your player breaks!
I'm running Arch Linux, but I'm sure the tools necessary also work on Mac and Windows, but you'll have to do that homework yourself.
Might go without saying, but all of this is taking place in the terminal/commandline.
Tools you need:
apktool
jarsigner
keytool
adb
Google is your friend
First off, enable USB Debugging on your M6. Go to Settings > General > About Device, then tap Build Number until it says "You are now a developer!". Go back to Settings, hit Developer Options and enable USB Debugging.
Now, grab apktool by following these instructions:
https://ibotpeaches.github.io/Apktool/install/
Then, put your apk in a folder. For this guide, I'll use "playerpro.apk" for the apk, "app" for the folder. Substitute with whatever you're hacking with.
Go into "/app", and run this command to install the framework:
"apktool if playerpro.apk"
Then decode the apk:
"apktool d playerpro.apk"
The decoded files will appear in "app/[apkname]", so in my case that'd be "app/playerpro"
This is where you'd usually edit "playerpro/AndroidManifest.xml", replacing the package name with a whitelisted app. No more!
Immediately after decoding, build it again:
"apktool b playerpro"
After a little while, it should spit out a bunch of text, ending with "I: Built apk..." - if not, your APK will most likely not work.
Copy or move the apk you just rebuilt from "app/playerpro/dist/playerpro.apk" into "app/playerpro2.apk" (the residing folder of the apk and decoded folder).
Here's where the magic happens. Run "keytool" to generate a keystore to sign the APK you just built.
"keytool -genkey -v -keystore fiio.keystore -alias fiio -keyalg RSA -keysize 2048 -validity 10000"
It'll prompt you for a password. You can enter anything, just be sure to remember it. It'll also ask you a bunch of things like Company Name and Country, just hit enter through it all for the default value of "Unknown". Note that, at the end, you're required to type out "yes".
Once you've got your keystore generated, you need to actually sign the apk with "jarsigner".
"jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore fiio.keystore playerpro2.apk fiio"
When that's done, you just need one, final command to install it. Plug in your M6 with USB and run "adb install playerpro.apk". You need to be in the "app" folder for this, btw.
I don't actually know why this works, but either it's installing through ADB (unlikely, as it has failed before), the act itself of signing the apk again (why doesn't the original apk work?) or simply by naming the keystore alias "fiio".
In either case, this has been working for PlayerPro and Pulsar+. PlayerPro's DSP pack installs directly with "adb install" without
any signing or decoding!
Give it a shot! Worst case scenario, it doesn't install. If you got any questions or errors, send me a PM.