Skip to content

Major rewrite of the Frameo installation instructions#593

Merged
JW-CH merged 7 commits intoimmichFrame:mainfrom
Torstein-Eide:docs
Mar 6, 2026
Merged

Major rewrite of the Frameo installation instructions#593
JW-CH merged 7 commits intoimmichFrame:mainfrom
Torstein-Eide:docs

Conversation

@Torstein-Eide
Copy link
Contributor

@Torstein-Eide Torstein-Eide commented Feb 15, 2026

Major rewrite of the Frameo installation instructions docs/docs/getting-started/apps.md

  • Restructured into numbered steps (1-10) for clearer guidance
  • Added download commands for Linux/Mac (curl) and Windows (PowerShell)
  • Expanded USB connection instructions with troubleshooting tips
  • Added note about ADB root access (adb shell su) before pm commands
  • Restructured "useful ADB commands" section
  • Added note about version < 1.29 limitations for overwriting default home app
  • Restructured Frameo WebView Update section with numbered steps
  • Added post-reboot verification instructions

Summary by CodeRabbit

  • Documentation
    • Rewrote and expanded Frameo and WebView setup into a clear step‑by‑step guide with prerequisites, notes, warnings, and standardized procedures.
    • Added explicit enable/disable, install/uninstall, backup, file‑operation and reboot steps; clarified default Home app configuration and version/path considerations.
    • Added a WebView feature note covering SplitView, HEIC, video, rendering, metadata and layout customization for clearer expectations.

@coderabbitai
Copy link

coderabbitai bot commented Feb 15, 2026

📝 Walkthrough

Walkthrough

Rewrote and expanded Frameo and Frameo WebView instructions in docs/docs/getting-started/apps.md into detailed, numbered step-by-step guides with prerequisites, notes, warnings, and explicit file/ADB operations for sideloading, WebView updates, and re-enable flows.

Changes

Cohort / File(s) Summary
Docs: Frameo & WebView
docs/docs/getting-started/apps.md
Replaced terse Frameo and Frameo WebView bullets with comprehensive stepwise procedures: added prerequisites, numbered ADB sideload/install/uninstall/reinstall flows, default Home app configuration, explicit start/disable steps, Windows/PowerShell variants, WebView file naming/backups/oat removal, device-specific notes, feature description, and formatting/clarity improvements.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Poem

🐰 I hopped through paragraphs and lines,
Numbered steps like carrot signs,
Backups snug, and reboots done right,
WebView shining, frames take flight,
A tiny guide — soft, clear, and bright.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: a comprehensive rewrite of Frameo installation instructions with reorganized steps, expanded guidance, and improved clarity.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🤖 Fix all issues with AI agents
In `@docs/docs/getting-started/apps.md`:
- Line 223: The markdown image tag currently has no alt text for
Frameo_digital_photo_frames_webview.png; update the tag
![](Frameo_digital_photo_frames_webview.png) to include a concise, descriptive
alt string (for example: ![Screenshot of Frameo digital photo frames
webview](Frameo_digital_photo_frames_webview.png)) so screen readers and cases
where the image fails to load have meaningful text.
- Line 197: Replace the unhyphenated compound adjective "auto complete" with the
hyphenated form "auto-complete" in the sentence containing "`adb push
/path/to/webview.apk /sdcard/webview.apk`" (the line that currently reads
"Android does not have auto complete...") so the documentation uses the correct
compound adjective form.
- Line 133: The markdown image tag
"![](Frameo_digital_photo_frames_default_app.png)" is missing alt text; update
that image reference to include a descriptive alt string (for example "Frameo
digital photo frame default app") so screen readers and broken-image contexts
have meaningful text, i.e., modify the markdown image tag to include the alt
text between the brackets.
- Around line 182-184: The fenced code block containing the adb uninstall
command lacks a language identifier; update the block around the line "adb
uninstall com.immichframe.immichframe" to use a shell/bash language tag (e.g.,
```bash) so the snippet is syntax-highlighted and more readable in docs.
- Around line 82-88: Correct typographical errors in the Webview feature note:
change the heading sentence "Webview provieds the following features" to
"Webview provides the following features", change the list item "Video playback
(experimenta)" to "Video playback (experimental)", and change the trailing
"etc)" to "etc.)" so the feature list text is spelled and punctuated correctly.
- Around line 227-229: Fix the blockquote spacing in the fenced code block:
remove the extra spaces after the blockquote symbol on the lines that currently
read as quoted shell lines (the lines wrapping "```shell", "adb shell pm path
com.android.webview", and "```") so each line uses a single ">" followed
immediately by the content (i.e., change ">  adb shell pm path
com.android.webview" to "> adb shell pm path com.android.webview" and similarly
for the surrounding fence lines).
- Line 138: Fix the inverted version comparison in the docs note: change the
parenthetical from "(< 1.29)" to "(>= 1.29)" or reword to say "in versions 1.29
and later" so the sentence correctly communicates that the feature is not
possible on newer releases and that uninstalling updates to 1.24 is required;
update the text fragment "This is not possible with latest app version (< 1.29)"
to the corrected comparison or phrasing.
- Around line 108-109: The PowerShell pipeline passes the .assets array to
Invoke-WebRequest instead of the APK download URL; extract the
browser_download_url first and pass that string to Invoke-WebRequest. Update the
invocation that uses Invoke-RestMethod, .assets, Where-Object and Select-Object
-ExpandProperty browser_download_url so the result (or a local $url variable) is
what you feed into Invoke-WebRequest -Uri, then call Invoke-WebRequest -OutFile
ImmichFrame.apk with that URL.

Updated instructions for setting ImmichFrame as the default HOME app and clarified the note regarding Frameo app updates.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@docs/docs/getting-started/apps.md`:
- Around line 129-131: The numbered step 9 has inconsistent indentation in the
markdown; update the block containing "Set as default HOME app:" and the
following indented instruction line ("On first reboot after install you will be
asked to select default Launcher, select `ImmichFrame` and select \"Always\"")
so its indentation matches the other numbered steps (use the same two-space or
four-space indent pattern as steps above) to ensure the markdown list renders
correctly.

@3rob3 3rob3 added the documentation Improvements or additions to documentation label Feb 19, 2026

5. Download the latest ImmichFrame APK from the [GitHub Releases][github-android-releases] page to your PC.

For linux or mac you can run the following command to download the latest release directly to your current directory:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step seems unnecessary. They are already here on a device, just download it from releases.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You think about the curl and windows equivalent?

I love then i can get latest version directly in terminal without using the web browser, download being outside of current working directory, etc.

curl -L -o ImmichFrame.apk $(curl -s https://api.github.com/repos/immichFrame/ImmichFrame_Android/releases/latest | grep "browser_download_url.*apk" | cut -d : -f 2,3 | tr -d \")
```

For windows you can run the following command in powershell to download the latest release directly to your current directory:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step seems unnecessary. They are already here on a device, just download it from releases.

@3rob3
Copy link
Collaborator

3rob3 commented Feb 20, 2026

Please fix the issues identified by code rabbit also.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/docs/getting-started/apps.md`:
- Around line 112-118: The install commands reference ImmichFrame_vXX.apk which
doesn't match the earlier download steps that save the artifact as
ImmichFrame.apk; update the two adb install examples in the block containing the
curl/PowerShell download steps to use ImmichFrame.apk (or alternatively add a
short clarifying note stating that ImmichFrame_vXX.apk applies only to manual
release downloads while the scripted downloads save as ImmichFrame.apk) so
filenames are consistent with the curl/PowerShell commands.
- Line 188: Replace the incorrect Android version string "6.01" with the
standard identifier "6.0.1" in the text fragment reading: This has been tested
and working on Android 6.01 10.1" Frameo devices.; update that sentence to read
"...Android 6.0.1 10.1\" Frameo devices." so the Android version uses the
correct dotted format.
- Around line 200-220: The guide drops users into an interactive root shell with
"adb shell su" but then runs a host command "adb reboot" without exiting; either
add an explicit "exit" step after the cp step (so the subsequent "adb reboot"
runs from the host) or change the reboot step to the in-shell command "reboot"
and mark it as "Reboot device (from within the root shell)"; also prepend a
brief note like "Run the following inside the root shell:" before steps that are
intended to execute inside the su session (steps that run cp, rm, mount, etc.),
and apply the same clarification to the Frameo setup step 10 to avoid mixed
shell/local-terminal confusion.
- Line 77: The sentence "Frameo digital photo frames are low powered and run a
very old Android version, so they cannot run the full WebView version of the app
(however most of the main features are still supported except SplitView)." uses
the compound modifier incorrectly; change "low powered" to the hyphenated form
"low-powered" in that sentence to correctly form the compound adjective.
- Around line 135-143: Fix the inconsistent list indentation for "Step 10"
(change the leading single space to match the two-space format used by other
steps) and remove the ambiguous mixed interactive/local command block by either
replacing the interactive adb shell sequence with a non-interactive invocation
(adb shell su -c 'pm disable net.frameo.frame' followed by adb reboot) or by
splitting into two clear fenced code blocks with an explicit note ("Inside the
root shell, run:" / "Then from your local terminal, run:") so commands intended
for the device (pm disable / pm enable) are separated from local commands (adb
reboot); apply the same fix to the "Re-enable Frameo" section referenced in the
comment.
- Around line 145-146: The NOTE block has inconsistent leading spacing: the
marker line uses "> [!NOTE]" but the following line begins with " > This..." (an
extra leading space). Edit docs/docs/getting-started/apps.md to remove the stray
space before the '>' on the paragraph line so it matches the marker line format
(both lines should start with "> "), ensuring the "[!NOTE]" block and its
content use consistent blockquote prefixes.

---

Duplicate comments:
In `@docs/docs/getting-started/apps.md`:
- Around line 181-183: The fenced code block containing the adb uninstall
command is missing a language tag (causing markdownlint MD040); update the block
delimiter from ``` to ```bash so the block becomes a bash code fence around the
line with adb uninstall com.immichframe.immichframe to resolve the warning and
ensure proper syntax highlighting in docs/docs/getting-started/apps.md.

@JW-CH
Copy link
Collaborator

JW-CH commented Mar 2, 2026

@3rob3 anything more needed here? I quite like the rewrite :)

@3rob3
Copy link
Collaborator

3rob3 commented Mar 2, 2026

No, it's good. I don't think they ever corrected the leading space thing above though.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (5)
docs/docs/getting-started/apps.md (5)

181-183: ⚠️ Potential issue | 🟡 Minor

Add a language identifier to this fenced code block.

This block is missing a fence language, unlike most other command snippets in the file.

Proposed doc fix
-    ```
+    ```bash
     adb uninstall com.immichframe.immichframe
     ```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/docs/getting-started/apps.md` around lines 181 - 183, The fenced code
block containing the command "adb uninstall com.immichframe.immichframe" is
missing a language identifier; update the opening fence to include a language
(e.g., "bash") so the snippet becomes a bash code block to match other command
snippets in the file and enable proper syntax/highlight rendering.

111-119: ⚠️ Potential issue | 🟡 Minor

Use a consistent APK filename with the prior download step.

Step 5 saves ImmichFrame.apk, but Step 6 installs ImmichFrame_vXX.apk. Following the doc literally will fail unless the user renames the file manually.

Proposed doc fix
   6. Sideload ImmichFrame:
      ```bash
-     adb install /path/to/ImmichFrame_vXX.apk
+     adb install ImmichFrame.apk
      ```

      **Update/reinstall existing ImmichFrame:**
      ```bash
-     adb install -r /path/to/ImmichFrame_vXX.apk
+     adb install -r ImmichFrame.apk
      ```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/docs/getting-started/apps.md` around lines 111 - 119, The APK filename
in Step 6 is inconsistent with Step 5: replace occurrences of
"ImmichFrame_vXX.apk" in the Sideload instructions with the exact filename saved
in Step 5 ("ImmichFrame.apk") so the adb install and adb install -r commands
match the prior download step (update the two lines that currently reference
ImmichFrame_vXX.apk to ImmichFrame.apk).

135-135: ⚠️ Potential issue | 🟡 Minor

Normalize Step 10 list indentation.

Line 135 uses different leading indentation than the surrounding numbered items, which can affect markdown list rendering.

Proposed doc fix
- 10. Then disable the Frameo app to set ImmichFrame as only Home app:
+  10. Then disable the Frameo app to set ImmichFrame as only Home app:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/docs/getting-started/apps.md` at line 135, The numbered list item "10.
Then disable the Frameo app to set ImmichFrame as only Home app" (Step 10) has
inconsistent leading indentation compared to the surrounding numbered items;
normalize the indentation so the list item uses the same leading spaces as other
items in the sequence (ensure it aligns with the numbered list formatting used
elsewhere in docs/getting-started/apps.md) to prevent Markdown list rendering
issues.

200-219: ⚠️ Potential issue | 🟠 Major

Exit root shell before running host-side reboot command.

Step 3 enters an interactive adb shell su session, but Step 7 uses adb reboot without an exit. In that sequence, users are still in device shell and adb reboot won’t run as intended.

Proposed doc fix
 6. Copy new WebView to system    
     ```shell
     mount -o rw,remount /system && cp /sdcard/webview.apk /system/app/webview/webview.apk
     ```
-7. Reboot device
+7. Exit root shell
+    ```shell
+    exit
+    ```
+8. Reboot device
     ```shell
     adb reboot
     ```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/docs/getting-started/apps.md` around lines 200 - 219, The doc sequence
enters an interactive root shell with the command "adb shell su" (Step 3) but
then runs "adb reboot" (Step 7) from the host, which will fail if the user is
still in-device; update the steps to insert an "Exit root shell" step after the
file-copy step (after the cp /sdcard/webview.apk ... in Step 6) that instructs
the user to run "exit" to leave the device shell, then change the final step to
run "adb reboot" from the host; reference the existing commands "adb shell su",
the copy command "cp /sdcard/webview.apk /system/app/webview/webview.apk", and
"adb reboot" to locate where to insert the new "exit" step.

188-188: ⚠️ Potential issue | 🟡 Minor

Correct Android version formatting.

6.01 is nonstandard; this should be 6.0.1.

Proposed doc fix
-This has been tested and working on Android 6.01 10.1" Frameo devices.
+This has been tested and working on Android 6.0.1 10.1" Frameo devices.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/docs/getting-started/apps.md` at line 188, Update the documented Android
version string in the sentence containing "Android 6.01 10.1\" Frameo devices"
to use the standard semantic format "6.0.1" (i.e., change "6.01" to "6.0.1") so
the line reads "Android 6.0.1 10.1\" Frameo devices".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@docs/docs/getting-started/apps.md`:
- Around line 181-183: The fenced code block containing the command "adb
uninstall com.immichframe.immichframe" is missing a language identifier; update
the opening fence to include a language (e.g., "bash") so the snippet becomes a
bash code block to match other command snippets in the file and enable proper
syntax/highlight rendering.
- Around line 111-119: The APK filename in Step 6 is inconsistent with Step 5:
replace occurrences of "ImmichFrame_vXX.apk" in the Sideload instructions with
the exact filename saved in Step 5 ("ImmichFrame.apk") so the adb install and
adb install -r commands match the prior download step (update the two lines that
currently reference ImmichFrame_vXX.apk to ImmichFrame.apk).
- Line 135: The numbered list item "10. Then disable the Frameo app to set
ImmichFrame as only Home app" (Step 10) has inconsistent leading indentation
compared to the surrounding numbered items; normalize the indentation so the
list item uses the same leading spaces as other items in the sequence (ensure it
aligns with the numbered list formatting used elsewhere in
docs/getting-started/apps.md) to prevent Markdown list rendering issues.
- Around line 200-219: The doc sequence enters an interactive root shell with
the command "adb shell su" (Step 3) but then runs "adb reboot" (Step 7) from the
host, which will fail if the user is still in-device; update the steps to insert
an "Exit root shell" step after the file-copy step (after the cp
/sdcard/webview.apk ... in Step 6) that instructs the user to run "exit" to
leave the device shell, then change the final step to run "adb reboot" from the
host; reference the existing commands "adb shell su", the copy command "cp
/sdcard/webview.apk /system/app/webview/webview.apk", and "adb reboot" to locate
where to insert the new "exit" step.
- Line 188: Update the documented Android version string in the sentence
containing "Android 6.01 10.1\" Frameo devices" to use the standard semantic
format "6.0.1" (i.e., change "6.01" to "6.0.1") so the line reads "Android 6.0.1
10.1\" Frameo devices".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 99c01eac-1f43-428f-a54b-1850801f0982

📥 Commits

Reviewing files that changed from the base of the PR and between ebb78d8 and 1982346.

📒 Files selected for processing (1)
  • docs/docs/getting-started/apps.md

@Torstein-Eide
Copy link
Contributor Author

No, it's good. I don't think they ever corrected the leading space thing above though.

I removed the leading space.

@JW-CH JW-CH merged commit e3442c2 into immichFrame:main Mar 6, 2026
7 checks passed
@JW-CH
Copy link
Collaborator

JW-CH commented Mar 6, 2026

@Torstein-Eide Thank you very much for this PR. fyi, I updated the NOTE-Syntax. Docusaurus uses :::Note instead of GitHub's > [!NOTE]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants