{"id":716,"date":"2026-06-08T08:21:46","date_gmt":"2026-06-08T16:21:46","guid":{"rendered":"https:\/\/nramkumar.org\/tech\/?p=716"},"modified":"2026-06-08T08:23:23","modified_gmt":"2026-06-08T16:23:23","slug":"google-photos-screensaver-on-facebook-portal","status":"publish","type":"post","link":"https:\/\/nramkumar.org\/tech\/blog\/2026\/06\/08\/google-photos-screensaver-on-facebook-portal\/","title":{"rendered":"Google Photos Screensaver On Facebook Portal"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Recently, Meta<a href=\"https:\/\/developers.meta.com\/horizon\/documentation\/android-apps\/portal-setup\"> announced that Android Debug Bridge is unlocked on Portal devices.<\/a> Portal devices are discontinued and their photos feature which was my favorite was disabled a few months ago. Thanks to this new development, it was finally possible to realize my dream of using my photos from Google Photos as a screensaver on the portal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can follow the instructions <a href=\"https:\/\/github.com\/ram-nat\/portal-gphotos\">from github to deploy this app to your Portal.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create the Google Cloud Project and OAuth Client<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Because this app connects to your personal Google Photos library, you need to create your own Google Cloud project and generate OAuth credentials.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Create a project<\/strong>\u00a0at\u00a0<a href=\"https:\/\/console.cloud.google.com\/\">https:\/\/console.cloud.google.com<\/a>.<\/li>\n\n\n\n<li><strong>Enable the Photos Picker API<\/strong>: APIs &amp; Services \u2192 Library \u2192 search &#8220;Photos Picker API&#8221; \u2192 Enable. (Not the Library API, not the Ambient API.)<\/li>\n\n\n\n<li><strong>OAuth consent screen<\/strong>:\n<ul class=\"wp-block-list\">\n<li>User type:\u00a0<strong>External<\/strong>.<\/li>\n\n\n\n<li>Add the scope\u00a0<code>https:\/\/www.googleapis.com\/auth\/photospicker.mediaitems.readonly<\/code>.<\/li>\n\n\n\n<li>Add your own Google account as a\u00a0<strong>Test user<\/strong>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Create the OAuth client<\/strong>: Credentials \u2192 Create credentials \u2192 OAuth client ID \u2192 Application type\u00a0<strong>Desktop app<\/strong>\u00a0\u2192 download the JSON (<code>client_secret.json<\/code>).<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Deploy the App<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Connect your Facebook Portal to your computer via USB (or over Wi-Fi ADB). Make sure to authorize the connection on the Portal screen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run the provided deployment script. This script automatically handles installing the APK, pushing your credentials, granting necessary system permissions, and setting up the screensaver hooks:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">.\/scripts\/deploy.sh --client client_secret.json<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Screenshots<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/setup_screen-1024x640.png\" alt=\"\" class=\"wp-image-717\" srcset=\"https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/setup_screen-1024x640.png 1024w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/setup_screen-300x188.png 300w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/setup_screen-768x480.png 768w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/setup_screen.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/add_photos_screen-1024x640.png\" alt=\"\" class=\"wp-image-718\" srcset=\"https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/add_photos_screen-1024x640.png 1024w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/add_photos_screen-300x188.png 300w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/add_photos_screen-768x480.png 768w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/add_photos_screen.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen-1024x640.png\" alt=\"\" class=\"wp-image-719\" srcset=\"https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen-1024x640.png 1024w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen-300x188.png 300w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen-768x480.png 768w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen_2-1024x640.png\" alt=\"\" class=\"wp-image-720\" srcset=\"https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen_2-1024x640.png 1024w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen_2-300x188.png 300w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen_2-768x480.png 768w, https:\/\/nramkumar.org\/tech\/wp-content\/uploads\/2026\/06\/showing_screen_2.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Recently, Meta announced that Android Debug Bridge is unlocked on Portal devices. Portal devices are discontinued and their photos feature which was my favorite was disabled a few months ago. Thanks to this new development, it was finally possible to realize my dream of using my photos from Google Photos as a screensaver on the&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-716","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/posts\/716","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/comments?post=716"}],"version-history":[{"count":2,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/posts\/716\/revisions"}],"predecessor-version":[{"id":723,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/posts\/716\/revisions\/723"}],"wp:attachment":[{"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/media?parent=716"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/categories?post=716"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/tags?post=716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}