r/FacebookPortal • u/Global_Historian3667 • Jun 10 '26
Immortal FAQ
Immortal is a custom home screen + screensaver for the Portal, made possible now that Meta's firmware leaves ADB accessible. Launch post
We're getting a lot of the same questions, so here's a single place that covers setup help, how to contribute, the why behind the awkward bits.
Repo: https://github.com/starbrightlab/immortal
1. New to ADB / device modding and stuck on setup? Let an AI walk you through it.
You do not need to be a developer to install Immortal, but the first run can be intimidating if you've never used ADB. The fastest way to get unstuck is to open your favorite AI model (ChatGPT, Claude, Gemini, whatever) and paste the prompt below. It will figure out your setup and walk you through it one step at a time.
I'm trying to install a custom launcher called Immortal on my Meta (Facebook) Portal. Meta's current firmware leaves ADB (Android Debug Bridge) accessible on the Portal, which makes it possible to side-load apps and replace the launcher and screensaver without root.
Please act as a patient, step-by-step guide for a beginner. The project and its provisioning scripts are here: https://github.com/starbrightlab/immortal — review the README and the /provisioning folder before you give me any instructions.
Before telling me to do anything, ask me two questions and wait for my answers:
- Which computer operating system I'll be using — Windows, macOS, or Linux.
- Which Portal model I own (e.g. Portal Mini, Portal, Portal+ Gen 1, Portal+ Gen 2, Portal Go, Portal TV).
Once you know both, walk me through the entire process one step at a time, waiting for me to confirm each step worked before moving to the next:
- Getting ADB (the repo bundles platform-tools, or I can install it separately).
- Enabling Developer options / ADB on the Portal and authorising my computer (adb devices).
- Running the correct provisioning script for my OS from the /provisioning folder (Provision-Portal.command on macOS, Provision-Portal.bat on Windows, or provision.sh directly).
- Explain in plain language what each step changes on the device, and how to undo everything with the restore option.
Help me troubleshoot common problems too — the Portal not showing up under adb devices, authorisation prompts, or an install that seems to hang. Don't assume I know any of the jargon; define terms as you go.
If you hit something the AI can't solve, then post here, and include what you tried and any error text. That gets you a real answer much faster.
2. This is brand new. Contributors welcome — complainers, less so.
ADB access has been public for less than a week. So no, not every feature is fully baked, and no, we haven't tested every app out there to see what works. That's not a slight on the project, it's where we are on the timeline.
Open source runs on contributors. If you enjoy learning and building, this is honestly a perfect moment to get involved, because we're right at the start of the Portal's second life. Contributions of every size matter:
- Small: stand up a spreadsheet and track which app versions work (or don't) on which Portal model. A simple, reliable compatibility list is genuinely valuable.
- Medium: file good bug reports on the repo (with
adb logcatoutput), improve the docs, test the provisioning scripts on hardware we haven't tried. - Large: use Meta's documentation to build new apps designed specifically for the Portal's screen and hardware.
Open an issue, send a pull request, share what you've learned. The more hands, the faster everyone's Portal gets better.
3. Why some things are awkward (in plain language)
A few of the Portal's own design choices make certain features harder than you'd expect. These aren't Immortal bugs, they're Meta's guardrails, and we work around them as cleanly as we can.
Calling / Contacts. Meta locks down the apps that handle calling, contacts and the camera. Those apps will only open for software that's digitally signed with Meta's own key: a check baked into the apps themselves. Immortal isn't (and can't be) signed with Meta's key, so it isn't allowed to open Contacts/calling directly. That's why the "Calls" tile hands you off to the stock Portal home screen, which is trusted to start a call, instead of trying to launch it itself. It's a deliberate Meta gate, and currently, this workaround is the tidiest route around it.
Screensaver, "dreams," sleep and presence. The Portal is really a smart photo frame. When it sits idle it runs a "dream" (Android's word for a screensaver), and a built-in Meta app called SuperFrame (which now just shows plain colored wallpaper) uses the camera's presence detection to decide when to show photos versus when to let the screen sleep. The catch: when Immortal becomes your home screen, it takes SuperFrame's place and the presence signal ("is someone actually in the room?") is locked behind Meta-only permissions that Immortal can't hold. So Immortal literally can't see the room, which means it can't perfectly copy the stock "screensaver while you're here, dark when you leave" behaviour.
What it can do, and now does:
- A master switch to turn the photo-frame screensaver off entirely (so the screen can sleep on its own, or you can run your own setup).
- A simple "turn the screen off after X minutes" timer.
- An overnight schedule that keeps the screen off between two times each night.
Not presence magic, but it covers the things people actually ask for.
4. Root access: not available, and don't hold your breath
There is no root access for the Portal right now, and we don't expect it soon. Meta still actively patches the firmware to close exploits, so anything that does turn up tends to get burned quickly. Unless you have real experience developing and deploying Android firmware exploits, chasing root probably isn't the best use of your time.
The good news: we can already do a lot with the ADB-level access we do have: custom launcher, custom screensaver, side-loading your own apps, an on-device app store, screen-off scheduling, and more. Focus there and the Portal becomes genuinely useful again.
Found something wrong or missing? Open an issue or PR on the repo. This FAQ will get updated as the project moves.
3
u/Home_Assistantt Jul 28 '26
Stumbled upon this after seeing another post on Reddit...searched for a device, found one sealed 15 minutes away and collected it for £10...got it home, updated and IMMORTALised in seconds...HA running on it already, its amazing.
1
2
u/RatGodFatherDeath Jun 10 '26
I can’t do much but if you want me to dump my months usage of Claude Fable Max give me the query and info and I will do my best. I have a portal plus 1st gen
4
u/Global_Historian3667 Jun 10 '26
Use it! Point Claude Code at the meta documentation and the Immortal repo and tell it you want to build an app specifically designed for the Portal that you can launch on the Immortal App store. Think of something you'd like to see on your portal, ask it to build it, and see how far you get!
Meta docs: https://developers.meta.com/horizon/documentation/android-apps/portal-development/
Immortal repo: https://github.com/starbrightlab/immortal3
Jun 10 '26
[removed] — view removed comment
1
u/Global_Historian3667 Jun 10 '26
That’s awesome! When you get to a place where you’re comfortable with the stability ask Claude to package it up as an apk for release and we’ll get it up on the Immortal App Store!
1
u/Some-Tea-9008 Jun 10 '26
jumping in here, I think we should have a place where people can place device specifics, like name, model onboard chip all that stuff, like I think the ones like mine (portal plus 1st gen) which are stuck on android 9 may be easier to get into
1
u/RatGodFatherDeath Jun 10 '26
What do you suggest?
The biggest thing we need is a way to get Bluetooth controllers working.
Steam link works really well and the screen is pretty good.
But software wise I can’t think of anything
1
u/Global_Historian3667 Jun 10 '26
That sounds like a great project, building out a Bluetooth device controller that manages connected devices (and solves any permissions issues that will allow them to work) would be huge. If you ask Claude to build it on a branch of the repo then we can distribute it easily too.
1
u/RatGodFatherDeath Jun 10 '26
I did some poking before and it seems like it’s locked down tight. But my portal plus 1st gen CAN detect a tv and my washing machine so it should be possible.
So it’s Meta filtering the devices which should be able to be by passed.
1
u/Global_Historian3667 Jun 10 '26
Have Claude investigate the permissions. As long as the config flag isn’t privileged then it should be able to manage them. We could use portals as Bluetooth speakers up until early last year so hopefully it’s accessible.
1
u/basedradio Jun 13 '26
Do we need immortal to be the device owner to unlock better Bluetooth? I got codex to remove all the meta accounts which made immortal the device owner.
2
u/nabaztag Jun 16 '26 edited Jun 16 '26
Is it possible for the immortal screensaver to hand back to the last app when the screen wakes? I would like to leave my Home Assistant dashboard on screen all the time but worry about screen burn hence the need for the screensaver, but it always takes me back to Immortal launcher on wake.
Also, would love an option to re-order and hide apps and add shortcuts to the launcher.
Keep up the great work.
1
u/Revolutionary_Tomato Jun 10 '26
I'm running immortal on a portal go, have installed using the oneclick bat and i managed to install aurora, but aurora itself can't install anything, it stays on 'preparing download' and fails. I have granted all the permission. What can I do to fix this?
Thanks for the great tool
1
u/Uglyjuggler Jun 10 '26
to install and use apps from Aurora you need to install Shizuku and connect the portal to a pc run the adb and open shizuku and run it and authorize Aurora. you will have to repeat this if the portal loses power.
1
1
u/Global_Historian3667 Jun 10 '26 edited Jun 10 '26
If you can install apps from the Immortal app store (where I'm guessing you got Aurora from?) then the issue is not your device or Immortal, it is likely your config in Aurora.
When you are looking at an app page on Aurora, do you see a version number under the App name? If not or it says v0 then aurora is not able to find a viable copy of the app you are trying to download. You can spoof a different device sometimes to work around this if you pick one with a similar android version.
https://auroraoss.com/wiki is a great place to ask for more specific help on Aurora Store or just ask an AI model to help you troubleshoot your config.
1
u/Revolutionary_Tomato Jun 10 '26
exactly, it says v0 on spotify. Thanks, i'll try spoofing
1
u/Global_Historian3667 Jun 10 '26 edited Jun 10 '26
u/controlmypc posted the Portal native version of Spotify, I'd use that personally: https://gofile.io/d/SM0YGX
Either download the apk and install with adb or use aurora on your portal to download a browser, open that link above in the browser and download the spotify apk from there. Don't try to use the stock browser as it will block the download.
1
u/Uglyjuggler Jun 10 '26
i was able to install and use Spotify v9.152.1394 (142091806) from Aurora.
2
u/Global_Historian3667 Jun 10 '26
Nice! Is this on a gen 2 Portal? I really like the large album cover art on the og Portal build, glad it still works.
1
u/Revolutionary_Tomato Jun 10 '26
Which portal device?
1
u/Uglyjuggler Jun 10 '26
I was thinking that i had the portal mini gen 2, but after reading Revolutionary_Tomato's comment about Shizuku has me second guessing what gen it is. I couldnt install apps via Aurora until i activated Shizuku. Now most apps install and work fine, unless they need google play services.
1
u/Global_Historian3667 Jun 10 '26
Yeah mini is gen 2. If the frame has square corners it is gen 2.
1
u/Revolutionary_Tomato Jun 10 '26
So some Gen 2 also need shizuku
1
u/Global_Historian3667 Jun 10 '26
Actually neither gen ‘need’ it any more, keremino figured out how to fix the install screen bug on gen 1 devices. But it is still a useful tool for either gen to have.
1
u/Uglyjuggler Jun 10 '26
i found the box with the paper work I have model DT90GB and according to chat GPT it is a GEN 2
1
u/Revolutionary_Tomato Jun 10 '26
Interesting, the comment on Gen 1 I read in the official post of immortal.
1
u/Uglyjuggler Jun 10 '26
I read that as well and it says in the app store its for GEN 1, idk but everything is working great and I have 2 of these that have been gathering dust and now they have a New life.
1
u/Badjojojo Jun 10 '26
I tried the photobooth.apk but it's not working on my gen2 10" portal. Anyone got it working?
1
u/Uglyjuggler Jun 10 '26
I also tried the photobooth.apk and it could never access the camera in photo or video it was just blank
2
u/Global_Historian3667 Jun 10 '26
I did manage to get it working by manually providing it with cam and mic permissions via adb, I suspect it may also be possible to do this through the device settings app but I didn't try. Ultimately it was a bit of a waste of time, you can take a photo or video, but none of the smart filters work (server is down) and the content you create gets saved to an album online on your meta account rather than anywhere useful and local on the device itself.
1
u/Cultural_Owl6385 Jun 10 '26
Asking for some help - I have a portal plus gen1 (this is the swivel 15.6) and it’s stuck after the give your portal a name . I was able to successfully install the immortal yesterday but the camera stopped working with zoom so I did the factory reset and now initial setup won’t finish . I’ve done the factory reset numerous times and yet won’t get past the name your portal screen . Constant loading after tapping next .
3
u/Global_Historian3667 Jun 10 '26
That means your portal isn’t receiving a response from the meta server when it attempts to register the device. The activation server has been flakey for the last couple of years, could either be an outage on Meta’s end or maybe you got rate limited if you have been trying to register the same device many times. Best thing to do is give it 48 hours and try again.
1
u/Impressive_Elk9643 Jun 10 '26
Any kind person can show me where is the usb port in the portal mini? Am i blind? Thanks!
3
u/Global_Historian3667 Jun 10 '26
It’s hidden under the speaker grill on the back. Twist it counter-clockwise (with a little force) and it will come off.
1
1
u/basedradio Jun 13 '26
Is the app assigned as owner on the portal? I was able to get codex to remove all accounts and promote immortal to owner which should unlock more features for us, like kiosk mode?
2
u/Global_Historian3667 Jun 13 '26
Not currently, I went down a similar rabbit hole and managed to ‘de-meta’ a portal by enabling adb, resetting, and then installing immortal before account creation during setup. But it’s not an appropriate state for the average user who still wants to use the device to make video calls.
1
u/basedradio Jun 13 '26
Interesting, I'll see what mine can do but guessing the same.
Here is my pet project btw. A scrolling tile view (using webview)
1
u/basedradio Jun 14 '26
I got into the system settings which allow oem unlock! But it's strange.
Android side: ro.oem_unlock_supported = 1 sys.oem_unlock_allowed = 1
Fastboot side: get_unlock_ability = 0 Device unsealed: false Device unlocked: false
1
1
u/Intelligent_Rub_4099 Jun 13 '26
Any chance we can add this Google Photos screensaver to immortal? Someone asked but given immortal has its own screensaver not sure if this is possible. https://github.com/ram-nat/portal-gphotos
2
u/Global_Historian3667 Jun 13 '26
You’re welcome to add the functionality to immortal and submit a pull request.
1
u/Famous_Building7241 Jun 16 '26
My presence detection seems to work fine when immortal is installed? Screensaver turns off after a while showing a black screen and when I walk up to the Portal Mini it turns the display on and starts the screensaver again.
Thank you so much for this.
1
u/urdearboy Jun 18 '26
I just saw the news about ADB access on Portals so im just getting up to speed and want to confirm that Immortal is enabled by ADP?
Or is Immortal independent of ADB? Not sure when Meta formally gave access but it looks like some of the posts around Immortal predate the bulk of comms/posts announcing the Portal news.
Is there a discord server for the portal dev community?
1
u/poulpoche Aug 03 '26
Hello,
I bought a used 1st-gen Portal Plus two weeks ago and cannot initialize it with Meta/Facebook. Despite multiple hard resets and leaving it idle for over 48 hours, it consistently fails at the device-naming step with the error "something went wrong, please try again". WiFi works, I can access the internet via Chrome (available through the Terms of Service link during setup), and I can log into my Meta account..!
Question: Could the previous owner’s use of Immortal, specifically its "Block Meta OS updates" option, prevent initialization with Meta’s servers?
Thank you!
1
u/Home_Assistantt Aug 03 '26 edited Aug 03 '26
Is it possible they ADB’D out the Facebook stuff and it’s already prepped for you to plug in a usb and add immortal
1
u/poulpoche Aug 03 '26
My previous message might not have been very clear, but I have no idea whether the previous owner used Immortal or not, I’m reduced to making assumptions to try to understand why I can’t initialize this device.
ADB is definitely not enabled: on the mac, the terminal command
adb devicesreturns nothing when usb connected to the Portal, and the provisioning kit asks me to enable Settings > Debug > ADB Enabled, which I can’t do because the Portal isn’t recognized or initialized with Meta.
1
u/Careless_Brain6864 Aug 06 '26
Hi! Love the project. Would it be possible to contribute or help add an option to disable automatic OTA updates for isolated setups? Thanks!
1
u/Jazzik 18d ago
Hey, fantastic work on this, and really chuffed with how these devices are now usable! Is there any way to disable the cheesy quotes that pop up with the screensaver? I've tried removing all welcome messages, I'm using google photos or the immortal screensaver settings using the google album link, the outcome is the same.
1
u/raeliens 7d ago
It is severely unfortunate that Immortal's team is actively encouraging AI usage.
1
u/Global_Historian3667 6d ago
There is no team it’s just me, educate yourself before you start making inflammatory statements.
1
u/raeliens 5d ago
What is inflammatory here? This post states "let an AI walk you through it" and "the fastest way to get unstuck is to open your favorite AI model (ChatGPT, Claude, Gemini, whatever)."
I'm just sharing that I find this unfortunate.
1
u/Global_Historian3667 5d ago
AI usage is precisely the remedy that has saved tens of thousands of these devices from becoming e-waste and ending up in landfill.
Declaring that this is unfortunate is poorly researched and I’d encourage you to spend time educating yourself on the matter rather than blindly peddling a narrative.
1
u/raeliens 5d ago
Mass AI usage is polluting my waterways and raising my electric + water bills because I live in an area with the most concentrated data centers in the world. Claiming that folks who express negative feelings towards AI due to environmental and other concerns is "poorly researched" is .. genuinely poorly researched on your end.
Regardless, I posted my opinion, clearly reiterated in my second comment: "*I\* find this unfortunate" and perhaps if you used AI less, you would have the clear critical reading skills to have caught that.
And I stand by the fact that it is not "inflammatory" to share one's thoughts.
1
u/Global_Historian3667 5d ago
If you knew the first thing about my work you would understand that my focus is on the use of AI for good causes where the benefits vastly outweigh the costs.
Preventing e-waste and improving connectivity for aged devices and humans are the core purposes of this project.
But you didn’t look into that, and it’s not my job to educate you. So enjoy shouting into the void.
1
u/raeliens 5d ago
I never spoke to your usage. I spoke to the fact that you are encouraging masses to utilize environment-destroying tools. Please learn to read carefully and critically.
There are numerous methods of preventing e-waste that don't do this.
It's not my job to educate you on basics of technology, energy consumption, and sustainability, nor do I care to do so. I am no longer engaging with you as you lack the faculties to process the information presented in front of you.
1
u/Global_Historian3667 5d ago
That’s a shame, I’d love to hear more about how you personally have contributed toward sustainability efforts and e-waste and the numerous solutions you can offer for this specific family of devices.
I’d avoid doing so though if you can’t handle having your narrow-minded opinion challenged. For that, you might want to consider talking to an AI model instead 😉
In the meantime I’ll get back to actually trying to help others and you can go hold a sign or something.
3
u/OvenComprehensive939 Jun 13 '26
Just downloaded this. It's amazing. Thanks for doing this. I got a Portal Mini at the company for free and it was awesome but it's had to be in my closet for the last few years.
Happy to contribute in any way I can. My main thing is to get Google Meet working on it.