-
Notifications
You must be signed in to change notification settings - Fork 80
Major rewrite of the Frameo installation instructions #593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
4596998
c3ccf0a
857f81c
01a806c
ebb78d8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -72,94 +72,161 @@ curl "http://192.168.0.136:53287/brightness?value=0.5" | |||||||||
| ``` | ||||||||||
|
|
||||||||||
| ### Frameo | ||||||||||
| ImmichFrame can be run on inexpensive Frameo digital photo frames with some additional effort. You can typically find these for ~$40 USD. These devices 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). We have found a method to update the WebView, but it is not without risks, see Frameo Webview Update below. | ||||||||||
| If you have not already, you will need to install ADB on your PC ([ADB instructions][ADB-link]). | ||||||||||
| ADB is often enabled on these devices by default, if it is not go to Frameo Settings-About-Enable Beta Program. Toggle ADB Access On-Off-On. Use the ADB commands below to sideload [ImmichFrame APK][github-android-releases], configure it to your liking, then disable the Frameo app to to set ImmichFrame as default Home app: | ||||||||||
| - Sideload ImmichFrame: | ||||||||||
| ImmichFrame can be run on inexpensive Frameo digital photo frames with some additional effort. You can typically find these for ~$40 USD. | ||||||||||
|
|
||||||||||
| 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). | ||||||||||
|
|
||||||||||
| > [!NOTE] | ||||||||||
| > We have found a method to update the WebView, but it is not without risks, see Frameo Webview Update below. | ||||||||||
| > | ||||||||||
| > Webview provides the following features that are not available without it: | ||||||||||
| > - SplitView | ||||||||||
| > - Some image formats (HEIC) | ||||||||||
| > - Video playback (experimental) | ||||||||||
| > - Better text rendering | ||||||||||
| > - Show Tag, desc, and album info from Immich. | ||||||||||
| > - Configurable layout, (size, background and overlay colors, and blur effects, etc.). | ||||||||||
|
|
||||||||||
| 1. You will need to install ADB on your PC ([ADB instructions][ADB-link]). | ||||||||||
|
|
||||||||||
| 2. Enable ADB on the Frameo device. ADB is often enabled on these devices by default, if it is not go to Frameo Settings-About-Enable Beta Program. Toggle ADB Access On-Off-On. | ||||||||||
|
|
||||||||||
| 3. Connect via USB. Next to the power port on the Frameo device there is a USB port, connect this to your PC with a USB cable. | ||||||||||
|
|
||||||||||
| 4. Verify connection with `adb devices` command, you should see your device listed. If not, try unplugging and re-plugging the usb cable, or restarting the device while connected via usb. | ||||||||||
|
|
||||||||||
| 5. Download the latest ImmichFrame APK from the [GitHub Releases][github-android-releases] page to your PC. | ||||||||||
3rob3 marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
|
|
||||||||||
| For linux or mac you can run the following command to download the latest release directly to your current directory: | ||||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You think about the I love then i can get latest version directly in terminal without using the web browser, download being outside of current working directory, etc. |
||||||||||
|
|
||||||||||
| ```bash | ||||||||||
| 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: | ||||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. |
||||||||||
| ```powershell | ||||||||||
| Invoke-WebRequest -Uri ((Invoke-RestMethod -Uri https://api.github.com/repos/immichFrame/ImmichFrame_Android/releases/latest).assets | Where-Object { $_.name -like "*.apk" } | Select-Object -First 1 -ExpandProperty browser_download_url) -OutFile ImmichFrame.apk | ||||||||||
| ``` | ||||||||||
|
|
||||||||||
| 6. Sideload ImmichFrame: | ||||||||||
| ```bash | ||||||||||
| adb install /path/to/ImmichFrame_vXX.apk | ||||||||||
| ``` | ||||||||||
|
|
||||||||||
| **Update/reinstall existing ImmichFrame:** | ||||||||||
| ```bash | ||||||||||
| adb install -r /path/to/ImmichFrame_vXX.apk | ||||||||||
|
Comment on lines
+112
to
+118
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Filename in install command is inconsistent with what the download commands produce. The curl and PowerShell commands in step 5 both save the file as 📝 Proposed 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
```Or add a clarifying note that 🤖 Prompt for AI Agents |
||||||||||
| ``` | ||||||||||
| 7. Start ImmichFrame: | ||||||||||
| ```bash | ||||||||||
| adb shell am start com.immichframe.immichframe/.MainActivity | ||||||||||
| ``` | ||||||||||
| 8. Configure and disable WebView: | ||||||||||
| 1. Swipe down to enter ImmichFrame Settings | ||||||||||
| 2. Configure URL and Authorization Secret (optional) | ||||||||||
| 3. Disable WebView | ||||||||||
|
|
||||||||||
| 9. Set as default HOME app: | ||||||||||
|
|
||||||||||
| On first reboot after install you will be asked to select default Launcher, select `ImmichFrame` and select "Always" | ||||||||||
|
|
||||||||||
|  | ||||||||||
|
|
||||||||||
| 10. Then disable the Frameo app to set ImmichFrame as only Home app: | ||||||||||
|
|
||||||||||
| ```bash | ||||||||||
| adb shell su | ||||||||||
| pm disable net.frameo.frame | ||||||||||
| exit | ||||||||||
| adb reboot | ||||||||||
| ``` | ||||||||||
| If this doesn't stick on reboot, repeat the commands but power cycle after exit command | ||||||||||
|
Comment on lines
+135
to
+143
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Step 10 indentation is inconsistent and the mixed shell/local-terminal code block is ambiguous. Two separate issues:
📝 Proposed fixesFix 1 — Indentation: - 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:Fix 2 — Use non-interactive - ```bash
- adb shell su
- pm disable net.frameo.frame
- exit
- adb reboot
- ```
+ ```bash
+ adb shell su -c 'pm disable net.frameo.frame'
+ adb reboot
+ ```Or keep the interactive form but split the blocks with an explicit note: + Enter the root shell:
```bash
adb shell su
+ ```
+ Inside the root shell, run:
+ ```bash
pm disable net.frameo.frame
exit
```
+ Then from your local terminal, reboot the device:
```bash
adb reboot
```The same pattern (interactive 🤖 Prompt for AI Agents |
||||||||||
|
|
||||||||||
| > [!NOTE] | ||||||||||
| > This is not possible with Frameo app versions >= 1.29, so uninstalling updates (to 1.24) is required to get the overwriting of default home app to work. If you have already updated the Frameo app, you can uninstall updates by going to Android Settings-Apps-Frameo-Uninstall Updates. | ||||||||||
|
Comment on lines
+145
to
+146
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Inconsistent leading space in the NOTE block. Line 145 ( 📝 Proposed fix > [!NOTE]
-> This is not possible with Frameo app versions >= 1.29, so uninstalling updates...
+> This is not possible with Frameo app versions >= 1.29, so uninstalling updates...📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||
|
|
||||||||||
|
|
||||||||||
| #### Some other useful ADB commands: | ||||||||||
|
|
||||||||||
| **Reboot:** | ||||||||||
|
|
||||||||||
| ```bash | ||||||||||
| adb reboot | ||||||||||
| ``` | ||||||||||
|
|
||||||||||
| > [!NOTE] | ||||||||||
| > You can also reboot or shutdown by holding down power button | ||||||||||
|
|
||||||||||
| **Access Android Settings:** | ||||||||||
|
|
||||||||||
| ```bash | ||||||||||
| adb shell am start -a android.settings.SETTINGS | ||||||||||
| ``` | ||||||||||
|
|
||||||||||
| #### Re-enable Frameo | ||||||||||
|
|
||||||||||
| 1. Enable Frameo again with ADB command: | ||||||||||
| ```bash | ||||||||||
| adb install /path/to/ImmichFrame_vXX.apk | ||||||||||
| adb shell su | ||||||||||
| pm enable net.frameo.frame | ||||||||||
| exit | ||||||||||
| ``` | ||||||||||
| - Update existing ImmichFrame: | ||||||||||
| ```bash | ||||||||||
| adb install -r /path/to/ImmichFrame_vXX.apk | ||||||||||
|
|
||||||||||
| 2. Start Frameo app: | ||||||||||
| ```bash | ||||||||||
| adb shell am start net.frameo.frame | ||||||||||
| ``` | ||||||||||
| - Start ImmichFrame: | ||||||||||
| ```bash | ||||||||||
| adb shell am start com.immichframe.immichframe/.MainActivity | ||||||||||
|
|
||||||||||
| 3. Uninstall ImmichFrame: | ||||||||||
| ``` | ||||||||||
| adb uninstall com.immichframe.immichframe | ||||||||||
| ``` | ||||||||||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
| - Swipe down to enter ImmichFrame Settings | ||||||||||
| - Configure URL and Authorization Secret (optional) | ||||||||||
| - Disable WebView | ||||||||||
| - Set as default HOME app | ||||||||||
| - On first reboot after install you will be asked to select default Launcher, select ImmichFrame | ||||||||||
| - Alternatively you can disable Frameo | ||||||||||
| ```bash | ||||||||||
| adb shell su | ||||||||||
| pm disable net.frameo.frame | ||||||||||
| exit | ||||||||||
| ``` | ||||||||||
| If this doesn't stick on reboot, repeat the commands but power cycle after exit command | ||||||||||
| - Some other useful ADB commands: | ||||||||||
| - Reboot: | ||||||||||
| ```bash | ||||||||||
| adb reboot | ||||||||||
| ``` | ||||||||||
| - You can also reboot or shutdown by holding down power button | ||||||||||
| - Access Android Settings: | ||||||||||
| ```bash | ||||||||||
| adb shell am start -a android.settings.SETTINGS | ||||||||||
| ``` | ||||||||||
| - Re-enable Frameo: repeat disable commands above but replace "disable" with "enable" | ||||||||||
| - Start Frameo app: | ||||||||||
| ```bash | ||||||||||
| adb shell am start net.frameo.frame | ||||||||||
| ``` | ||||||||||
| - Uninstall ImmichFrame: | ||||||||||
| ``` | ||||||||||
| adb uninstall com.immichframe.immichframe | ||||||||||
| ``` | ||||||||||
|
|
||||||||||
| ### Frameo WebView Update | ||||||||||
| Follow instructions below to update WebView to 106. This has been tested and working on Android 6.01 10.1" Frameo devices: | ||||||||||
| - Download WebView 106 to PC: | ||||||||||
| [Lineage OS WebView 106-0-5249-126-12][webview-update] | ||||||||||
| - Push new apk to sdcard | ||||||||||
| ```shell | ||||||||||
| adb push /path/to/your/new/webview.apk /sdcard/ | ||||||||||
| ``` | ||||||||||
| - Enter shell and switch to the root user | ||||||||||
| ```shell | ||||||||||
| adb shell | ||||||||||
| ``` | ||||||||||
| then inside the shell | ||||||||||
| ```shell | ||||||||||
| su | ||||||||||
| ``` | ||||||||||
| - Backup original WebView APK | ||||||||||
| ```shell | ||||||||||
| mount -o rw,remount /system && cp /system/app/webview/webview.apk /system/app/webview/webview.apk.bak | ||||||||||
| ``` | ||||||||||
| - Delete the oat folder recursively | ||||||||||
| ```shell | ||||||||||
| mount -o rw,remount /system && rm -rf /system/app/webview/oat | ||||||||||
| ``` | ||||||||||
| - Copy new WebView to system | ||||||||||
| ```shell | ||||||||||
| mount -o rw,remount /system && cp /sdcard/webview.apk /system/app/webview/webview.apk | ||||||||||
| ``` | ||||||||||
| - exit root | ||||||||||
| ```shell | ||||||||||
| exit | ||||||||||
| ``` | ||||||||||
| - Reboot device | ||||||||||
| ```shell | ||||||||||
| adb reboot | ||||||||||
| ``` | ||||||||||
| Follow instructions below to update WebView to 106. | ||||||||||
|
|
||||||||||
| This has been tested and working on Android 6.01 10.1" Frameo devices. | ||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "6.01" is likely a typo for "6.0.1". Android version 6 is formatted as 📝 Proposed 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.📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||
|
|
||||||||||
| 1. Download WebView 106 to PC: | ||||||||||
|
|
||||||||||
| [Lineage OS WebView 106-0-5249-126-12 (arm64-v8a + arm-v7a) (Android 6.0+)][webview-update] | ||||||||||
|
|
||||||||||
| 2. Push new apk to sdcard | ||||||||||
| > [!NOTE] | ||||||||||
| > Android does not have auto-complete so you will save time if the new file is /sdcard/webview.apk, so you can just run `adb push /path/to/webview.apk /sdcard/webview.apk` and it will be named webview.apk on the device. | ||||||||||
| ```shell | ||||||||||
| adb push /path/to/your/new/webview.apk /sdcard/webview.apk | ||||||||||
| ``` | ||||||||||
| 3. Enter shell and switch to the root user | ||||||||||
| ```shell | ||||||||||
| adb shell su | ||||||||||
| ``` | ||||||||||
| 4. Backup original WebView APK | ||||||||||
| ```shell | ||||||||||
| mount -o rw,remount /system && cp /system/app/webview/webview.apk /system/app/webview/webview.apk.bak | ||||||||||
| ``` | ||||||||||
| 5. Delete the oat folder recursively | ||||||||||
| ```shell | ||||||||||
| mount -o rw,remount /system && rm -rf /system/app/webview/oat | ||||||||||
| ``` | ||||||||||
| 6. Copy new WebView to system | ||||||||||
| ```shell | ||||||||||
| mount -o rw,remount /system && cp /sdcard/webview.apk /system/app/webview/webview.apk | ||||||||||
| ``` | ||||||||||
| 7. Reboot device | ||||||||||
| ```shell | ||||||||||
| adb reboot | ||||||||||
| ``` | ||||||||||
| After reboot, you should see a "installing new app" notification, and then you can verify the new WebView version by going to Android `Settings-Apps`, top right corner triple dot menu `show system`, Android System WebView. | ||||||||||
|
Comment on lines
+200
to
+220
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missing Step 3 drops the user into an interactive root shell on the device ( The fix is either to add an explicit 📝 Option A — add an explicit `exit` step (preserves `adb reboot` in step 7) 6. Copy new WebView to system
```shell
mount -o rw,remount /system && cp /sdcard/webview.apk /system/app/webview/webview.apk
```
+7. Exit the root shell
+ ```shell
+ exit
+ ```
-7. Reboot device
+8. Reboot device
```shell
adb reboot
```📝 Option B — use in-shell `reboot` so no exit is needed-7. Reboot device
- ```shell
- adb reboot
- ```
+7. Reboot device (from within the root shell)
+ ```shell
+ reboot
+ ```Note: this section also has the same mixed shell/local-terminal code block pattern flagged for the Frameo setup step 10 (lines 135–143) — steps 4–6 look like standalone terminal commands but are actually intended to be run inside the interactive root shell entered in step 3. Adding a brief note ("Run the following inside the root shell:") before each of steps 4–6 would significantly improve clarity. 🤖 Prompt for AI Agents |
||||||||||
|
|
||||||||||
|  | ||||||||||
|
|
||||||||||
| > [!NOTE] | ||||||||||
| > Depending on the device or Android version, the location to the webview apk may be different for you. You can locate it with: | ||||||||||
| > ```shell | ||||||||||
| > adb shell pm path com.android.webview | ||||||||||
| > ``` | ||||||||||
|
|
||||||||||
| Depending on the device or Android version, the location to the webview apk may be different for you. You can locate it with | ||||||||||
| ```shell | ||||||||||
| adb shell pm path com.android.webview | ||||||||||
| ``` | ||||||||||
| #### Alternative WebView Method | ||||||||||
| If the above method does not work, or you receive permissions issue, try this [Alternative Method][alternate-webview-method] | ||||||||||
|
|
||||||||||
|
|
||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hyphenate the compound adjective
low-powered."low powered" modifying "Android version" is a compound modifier and should be hyphenated.
📝 Proposed fix
📝 Committable suggestion
🧰 Tools
🪛 LanguageTool
[grammar] ~77-~77: Use a hyphen to join words.
Context: ...D. Frameo digital photo frames are low powered and run a very old Android versi...
(QB_NEW_EN_HYPHEN)
[style] ~77-~77: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...al photo frames are low powered and run a very old Android version, so they cannot run the...
(EN_WEAK_ADJECTIVE)
🤖 Prompt for AI Agents