Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Readers > Onyx Boox

Notices

Reply
 
Thread Tools Search this Thread
Old 07-03-2022, 07:00 PM   #1
llinfeng
Enthusiast
llinfeng is on a distinguished road
 
Posts: 38
Karma: 58
Join Date: Jan 2019
Device: Kobo, Kindles, Sony DPTs, QQ-Read
How to open NeoReader (and Notes app) using adb?

I recently noticed that the OneNote app is finally usable on Lumi 2 (palm rejection has been improved in 3.2.3), and looked for ways to "send" a specific OneNote page to Lumi 2. I ended up learning a bit more about adb, and the solution is here.

Now, I'd like to look into more possibilities to use the Boox tablets more efficiently. Namely, I'm looking for ways to activate certain programs via adb. Per my limited experience, I'm completely lost. (Well, I tried to look for the list of apps using "adb shell pm list packages", but then was not able to find, say, the NeoReader app.)

Please advise if there are quick ways to open (or switch to) the following apps over adb connection:
  1. NeoReader (for PDF annotation)
  2. The Notes app (one that won't reveal itself in third-party launchers)

To make this post future-proof, let me ask another obscure question: are there more precise ways to interact with both the Notes app and the NeoReader to achieve the following?
  1. Ask the current NeoReader "session" to save the file. (For now, this is doable by pressing the Save button under the Scribble sub-menu)
  2. Trigger TOC in NeoReader (while I keep the Scribble sub-menu opened at all times, I can no longer interact with the "Menu" that contains TOC and progress bar);
  3. For the notes app, jump to a certain note with a specific page number
  4. For the notes app, open to a specific note and jump to the beginning/end of the notebook.

Please excuse me for posting all these overly demanding requests here. Compared to contacting Boox and learning again how ignorant they are towards these types of requests, I consider this forum as the most productive place to discuss those things. (Well, to play it fair, I'll ask the same four questions to Boox support on push.boox.com, and see how they respond.)
llinfeng is offline   Reply With Quote
Old 07-04-2022, 09:42 AM   #2
Renate
Onyx-maniac
Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.
 
Posts: 3,205
Karma: 12537601
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
Don't send 26 (Power). Send 224 (Wakeup). FWIW 223 (Sleep).
Renate is offline   Reply With Quote
Old 07-04-2022, 10:51 PM   #3
winstonma
Zealot
winstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windows
 
Posts: 110
Karma: 120918
Join Date: Nov 2013
Device: Onyx Boox Nova
This adb shell command should open the NeoReader

Code:
am start -n com.onyx.kreader/com.onyx.kreader.ui.ReaderHomeActivity
I am using Onyx Nova so I don't have the Note app to test.

Last edited by winstonma; 07-06-2022 at 03:00 AM.
winstonma is offline   Reply With Quote
Old 07-06-2022, 12:38 PM   #4
llinfeng
Enthusiast
llinfeng is on a distinguished road
 
Posts: 38
Karma: 58
Join Date: Jan 2019
Device: Kobo, Kindles, Sony DPTs, QQ-Read
Quote:
Originally Posted by winstonma View Post
This adb shell command should open the NeoReader

Code:
am start -n com.onyx.kreader/com.onyx.kreader.ui.ReaderHomeActivity
I am using Onyx Nova so I don't have the Note app to test.
Great, it works - should I have recently opened a PDF file using the NeoReader, the adb shell command brought me back to the file! This serves my need perfectly!

Though, how did you figure out the "/com.onyx.kreader.ui.ReaderHomeActivity" bit? When I went into the adb shell, tab-completion never worked, and I wonder what's the proper procedure to "discover" the proper command to issue.

Oh, one funny thing - I also tried to contact Boox support asking them to complete the list of intents. They asked me to read their GitHub repo for the SDK instead ... lol
llinfeng is offline   Reply With Quote
Old 07-06-2022, 01:17 PM   #5
Renate
Onyx-maniac
Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.
 
Posts: 3,205
Karma: 12537601
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
You can disassemble using apktool. It will show you the AndroidManifest.xml

I use my own binxml.exe to get a quick look at AndroidManifest.xml without doing a whole disassembly. It shows it as a tree instead of literal XML. (This is somewhere around 3.2.2)
Spoiler:
Code:
000000  XML
000008  String pool 260
003778  XML resource map
003820     2  manifest
003844        │     android:versionCode=33918
003858        │     android:versionName=33918 - 3c96bde
00386c        │     android:compileSdkVersion=29
003880        │     android:compileSdkVersionCodename=10
003894        │     package=com.onyx.kreader
0038a8        │     platformBuildVersionCode=29
0038bc        │     platformBuildVersionName=10
0038d0     7  ├──uses-sdk
0038f4        │        android:minSdkVersion=23
003908        │        android:targetSdkVersion=29
003934    11  ├──uses-permission
003958        │        android:name=android.permission.EXPAND_STATUS_BAR
003984    12  ├──uses-permission
0039a8        │        android:name=android.permission.STATUS_BAR
0039d4    13  ├──uses-permission
0039f8        │        android:name=android.permission.READ_EXTERNAL_STORAGE
003a24    14  ├──uses-permission
003a48        │        android:name=android.permission.WRITE_EXTERNAL_STORAGE
003a74    15  ├──uses-permission
003a98        │        android:name=android.permission.MANAGE_EXTERNAL_STORAGE
003ac4    16  ├──uses-permission
003ae8        │        android:name=android.permission.WRITE_SETTINGS
003b14    17  ├──uses-permission
003b38        │        android:name=android.permission.WAKE_LOCK
003b64    18  ├──uses-permission
003b88        │        android:name=android.permission.ACCESS_NETWORK_STATE
003bb4    19  ├──uses-permission
003bd8        │        android:name=android.permission.ACCESS_WIFI_STATE
003c04    20  ├──uses-permission
003c28        │        android:name=android.permission.INTERNET
003c54    21  ├──uses-permission
003c78        │        android:name=android.permission.MODIFY_AUDIO_SETTINGS
003ca4    22  ├──uses-permission
003cc8        │        android:name=android.permission.CHANGE_WIFI_STATE
003cf4    23  ├──uses-permission
003d18        │        android:name=com.onyx.android.dict.TOKEN_SEARCH
003d44    24  ├──uses-permission
003d68        │        android:name=android.permission.GET_TASKS
003d94    25  ├──uses-permission
003db8        │        android:name=android.permission.REORDER_TASKS
003de4    26  ├──uses-permission
003e08        │        android:name=com.android.email.permission.READ_ATTACHMENT
003e34    27  ├──uses-permission
003e58        │        android:name=android.permission.GET_INTENT_SENDER_INTENT
003e84    28  ├──uses-permission
003ea8        │        android:name=android.permission.RECEIVE_BOOT_COMPLETED
003ed4    29  ├──uses-permission
003ef8        │        android:name=android.permission.SYSTEM_ALERT_WINDOW
003f24    30  ├──uses-permission
003f48        │        android:name=android.permission.READ_PHONE_STATE
003f74    31  ├──uses-permission
003f98        │        android:name=android.permission.USE_FINGERPRINT
003fc4    32  ├──uses-permission
003fe8        │        android:name=android.permission.ACCESS_KEYGUARD_SECURE_STORAGE
004014    33  ├──uses-permission
004038        │        android:name=android.permission.INTERACT_ACROSS_USERS_FULL
004064    34  ├──uses-permission
004088        │        android:name=android.permission.MANAGE_USERS
0040b4    35  ├──uses-permission
0040d8        │        android:name=android.permission.BATTERY_STATS
004104    36  ├──uses-permission
004128        │        android:name=android.permission.CAMERA
004154    37  ├──uses-permission
004178        │        android:name=android.permission.READ_LOGS
0041a4    38  ├──uses-permission
0041c8        │        android:name=android.permission.VIBRATE
0041f4    39  ├──uses-permission
004218        │        android:name=android.permission.BLUETOOTH
004244    40  ├──uses-permission
004268        │        android:name=android.permission.DUMP
004294    41  ├──uses-permission
0042b8        │        android:name=android.permission.FOREGROUND_SERVICE
0042e4    43  └──application
004308           │     android:theme=@7F0F0007
00431c           │     android:label=@7F0E0048
004330           │     android:icon=@7F080410
004344           │     android:name=com.onyx.kreader.ui.KReaderApp
004358           │     android:allowBackup=true
00436c           │     android:hardwareAccelerated=false
004380           │     android:largeHeap=true
004394           │     android:supportsRtl=true
0043a8           │     android:extractNativeLibs=false
0043bc           │     android:networkSecurityConfig=@7F110004
0043d0    54     ├──meta-data
0043f4           │        android:name=channel
004408           │        android:value=
004434    57     ├──meta-data
004458           │        android:name=type
00446c           │        android:value=
004498    60     ├──meta-data
0044bc           │        android:name=platform
0044d0           │        android:value=
0044fc    63     ├──meta-data
004520           │        android:name=timestamp
004534           │        android:value=1638336296556L
004560    67     ├──activity
004584           │  │     android:name=com.onyx.kreader.ui.ReaderHomeActivity
004598           │  │     android:process=@7F0E0370
0045ac           │  │     android:excludeFromRecents=true
0045c0    71     │  ├──intent-filter
0045e4    72     │  │  ├──action
004608           │  │  │        android:name=android.intent.action.VIEW
004634    74     │  │  ├──category
004658           │  │  │        android:name=android.intent.category.DEFAULT
004684    76     │  │  ├──data
0046a8           │  │  │        android:scheme=file
0046bc           │  │  │        android:host=*
0046e8    79     │  │  ├──data
00470c           │  │  │        android:scheme=content
004720           │  │  │        android:host=*
00474c    82     │  │  ├──data
004770           │  │  │        android:mimeType=application/pdf
00479c    83     │  │  ├──data
0047c0           │  │  │        android:mimeType=application/caj
0047ec    84     │  │  ├──data
004810           │  │  │        android:mimeType=application/x-zip
00483c    85     │  │  ├──data
004860           │  │  │        android:mimeType=application/x-cbz
00488c    86     │  │  ├──data
0048b0           │  │  │        android:mimeType=application/x-cbr
0048dc    87     │  │  ├──data
004900           │  │  │        android:mimeType=image/vnd.djvu
00492c    88     │  │  ├──data
004950           │  │  │        android:mimeType=image/x-djvu
00497c    89     │  │  ├──data
0049a0           │  │  │        android:mimeType=image/jpeg
0049cc    90     │  │  ├──data
0049f0           │  │  │        android:mimeType=image/jpg
004a1c    91     │  │  ├──data
004a40           │  │  │        android:mimeType=image/png
004a6c    92     │  │  ├──data
004a90           │  │  │        android:mimeType=image/bmp
004abc    93     │  │  ├──data
004ae0           │  │  │        android:mimeType=image/x-ms-bmp
004b0c    94     │  │  ├──data
004b30           │  │  │        android:mimeType=image/x-windows-bmp
004b5c    95     │  │  ├──data
004b80           │  │  │        android:mimeType=image/tiff
004bac    96     │  │  ├──data
004bd0           │  │  │        android:mimeType=image/image/tiff-fx
004bfc    97     │  │  ├──data
004c20           │  │  │        android:mimeType=application/djvu
004c4c    98     │  │  ├──data
004c70           │  │  │        android:mimeType=text/xml
004c9c    99     │  │  ├──data
004cc0           │  │  │        android:mimeType=text/plain
004cec   100     │  │  ├──data
004d10           │  │  │        android:mimeType=text/html
004d3c   101     │  │  ├──data
004d60           │  │  │        android:mimeType=text/fb2+xml
004d8c   102     │  │  ├──data
004db0           │  │  │        android:mimeType=text/rtf
004ddc   103     │  │  ├──data
004e00           │  │  │        android:mimeType=text/richtext
004e2c   104     │  │  ├──data
004e50           │  │  │        android:mimeType=text/*
004e7c   105     │  │  ├──data
004ea0           │  │  │        android:mimeType=application/text
004ecc   106     │  │  ├──data
004ef0           │  │  │        android:mimeType=application/txt
004f1c   107     │  │  ├──data
004f40           │  │  │        android:mimeType=application/txt+zip
004f6c   108     │  │  ├──data
004f90           │  │  │        android:mimeType=application/txt.zip
004fbc   109     │  │  ├──data
004fe0           │  │  │        android:mimeType=text/html
00500c   110     │  │  ├──data
005030           │  │  │        android:mimeType=application/html
00505c   111     │  │  ├──data
005080           │  │  │        android:mimeType=application/html+zip
0050ac   112     │  │  ├──data
0050d0           │  │  │        android:mimeType=application/html.zip
0050fc   113     │  │  ├──data
005120           │  │  │        android:mimeType=application/xhtml+xml
00514c   114     │  │  ├──data
005170           │  │  │        android:mimeType=text/fb2+xml
00519c   115     │  │  ├──data
0051c0           │  │  │        android:mimeType=application/x-fb2
0051ec   116     │  │  ├──data
005210           │  │  │        android:mimeType=application/fb2
00523c   117     │  │  ├──data
005260           │  │  │        android:mimeType=application/fb2.zip
00528c   118     │  │  ├──data
0052b0           │  │  │        android:mimeType=application/fb2+zip
0052dc   119     │  │  ├──data
005300           │  │  │        android:mimeType=application/zip
00532c   120     │  │  ├──data
005350           │  │  │        android:mimeType=application/x-fictionbook
00537c   121     │  │  ├──data
0053a0           │  │  │        android:mimeType=application/x-fictionbook+xml
0053cc   122     │  │  ├──data
0053f0           │  │  │        android:mimeType=application/x-fictionbook+zip
00541c   123     │  │  ├──data
005440           │  │  │        android:mimeType=application/epub+zip
00546c   124     │  │  ├──data
005490           │  │  │        android:mimeType=application/epub
0054bc   125     │  │  ├──data
0054e0           │  │  │        android:mimeType=application/JEB
00550c   126     │  │  ├──data
005530           │  │  │        android:mimeType=application/jdnovel
00555c   127     │  │  ├──data
005580           │  │  │        android:mimeType=application/x-mobipocket-ebook
0055ac   128     │  │  ├──data
0055d0           │  │  │        android:mimeType=application/vnd.amazon.ebook
0055fc   129     │  │  ├──data
005620           │  │  │        android:mimeType=application/azw3
00564c   130     │  │  ├──data
005670           │  │  │        android:mimeType=application/mobi
00569c   131     │  │  ├──data
0056c0           │  │  │        android:mimeType=application/x-mobipocket-ebook
0056ec   132     │  │  ├──data
005710           │  │  │        android:mimeType=application/prc
00573c   133     │  │  ├──data
005760           │  │  │        android:mimeType=application/vnd.palm
00578c   134     │  │  ├──data
0057b0           │  │  │        android:mimeType=application/octet-stream
0057dc   135     │  │  ├──data
005800           │  │  │        android:mimeType=application/odt
00582c   136     │  │  ├──data
005850           │  │  │        android:mimeType=application/rtf
00587c   137     │  │  ├──data
0058a0           │  │  │        android:mimeType=application/x-rtf
0058cc   138     │  │  ├──data
0058f0           │  │  │        android:mimeType=text/rtf
00591c   139     │  │  ├──data
005940           │  │  │        android:mimeType=text/richtext
00596c   140     │  │  ├──data
005990           │  │  │        android:mimeType=application/rtf+zip
0059bc   141     │  │  ├──data
0059e0           │  │  │        android:mimeType=application/rtf.zip
005a0c   142     │  │  ├──data
005a30           │  │  │        android:mimeType=application/msword
005a5c   143     │  │  ├──data
005a80           │  │  │        android:mimeType=application/doc
005aac   144     │  │  ├──data
005ad0           │  │  │        android:mimeType=application/docx
005afc   145     │  │  ├──data
005b20           │  │  │        android:mimeType=application/vnd.msword
005b4c   146     │  │  ├──data
005b70           │  │  │        android:mimeType=application/vnd.ms-word
005b9c   147     │  │  ├──data
005bc0           │  │  │        android:mimeType=application/winword
005bec   148     │  │  ├──data
005c10           │  │  │        android:mimeType=application/word
005c3c   149     │  │  ├──data
005c60           │  │  │        android:mimeType=application/x-msw6
005c8c   150     │  │  ├──data
005cb0           │  │  │        android:mimeType=application/x-msword
005cdc   151     │  │  ├──data
005d00           │  │  │        android:mimeType=application/vnd.openxmlformats-officedocument.wordprocessingml.document
005d2c   152     │  │  ├──data
005d50           │  │  │        android:mimeType=application/doc+zip
005d7c   153     │  │  ├──data
005da0           │  │  │        android:mimeType=application/doc.zip
005dcc   154     │  │  ├──data
005df0           │  │  │        android:mimeType=application/vnd.ms-htmlhelp
005e1c   155     │  │  ├──data
005e40           │  │  │        android:mimeType=chemical/x-chemdraw
005e6c   156     │  │  ├──data
005e90           │  │  │        android:mimeType=application/vnd.openxmlformats-officedocument.presentationml.presentation
005ebc   157     │  │  └──data
005ee0           │  │           android:mimeType=application/vnd.ms-powerpoint
005f24   159     │  └──intent-filter
005f48   160     │     ├──action
005f6c           │     │        android:name=android.intent.action.VIEW
005f98   162     │     ├──category
005fbc           │     │        android:name=android.intent.category.DEFAULT
005fe8   164     │     ├──data
00600c           │     │        android:host=*
006038   165     │     ├──data
00605c           │     │        android:scheme=file
006088   166     │     ├──data
0060ac           │     │        android:scheme=content
0060d8   167     │     ├──data
0060fc           │     │        android:pathPattern=.*\.azw
006128   168     │     ├──data
00614c           │     │        android:pathPattern=.*\.azw3
006178   169     │     ├──data
00619c           │     │        android:pathPattern=.*\.cbz
0061c8   170     │     ├──data
0061ec           │     │        android:pathPattern=.*\.cbr
006218   171     │     ├──data
00623c           │     │        android:pathPattern=.*\.[cC][bB][zZ]
006268   172     │     ├──data
00628c           │     │        android:pathPattern=.*\.[cC][bB][rR]
0062b8   173     │     ├──data
0062dc           │     │        android:pathPattern=.*\.chm
006308   174     │     ├──data
00632c           │     │        android:pathPattern=.*\.[cC][hH][mM]
006358   175     │     ├──data
00637c           │     │        android:pathPattern=.*\.[dD][jJ][vV][uU]
0063a8   176     │     ├──data
0063cc           │     │        android:pathPattern=.*\.[eE][pP][uU][bB]
0063f8   177     │     ├──data
00641c           │     │        android:pathPattern=.*\.doc
006448   178     │     ├──data
00646c           │     │        android:pathPattern=.*\.docm
006498   179     │     ├──data
0064bc           │     │        android:pathPattern=.*\.docx
0064e8   180     │     ├──data
00650c           │     │        android:pathPattern=.*\.epub
006538   181     │     ├──data
00655c           │     │        android:pathPattern=.*\.epub\.zip
006588   182     │     ├──data
0065ac           │     │        android:pathPattern=.*\.fb2
0065d8   183     │     ├──data
0065fc           │     │        android:pathPattern=.*\.fb2\.zip
006628   184     │     ├──data
00664c           │     │        android:pathPattern=.*\.fbz
006678   185     │     ├──data
00669c           │     │        android:pathPattern=.*\.mobi
0066c8   186     │     ├──data
0066ec           │     │        android:pathPattern=.*\.jeb
006718   187     │     ├──data
00673c           │     │        android:pathPattern=.*\.comic
006768   188     │     ├──data
00678c           │     │        android:pathPattern=.*\.[jJ][eE][bB]
0067b8   189     │     ├──data
0067dc           │     │        android:pathPattern=.*\.jdnovel
006808   190     │     ├──data
00682c           │     │        android:pathPattern=.*\.[jJ][dD][nN][oO][vV][eE][lL]
006858   191     │     ├──data
00687c           │     │        android:pathPattern=.*\.odt
0068a8   192     │     ├──data
0068cc           │     │        android:pathPattern=.*\.pdb
0068f8   193     │     ├──data
00691c           │     │        android:pathPattern=.*\.[pP][dD][fF]
006948   194     │     ├──data
00696c           │     │        android:pathPattern=.*\.[cC][aA][jJ]
006998   195     │     ├──data
0069bc           │     │        android:pathPattern=.*\.prc
0069e8   196     │     ├──data
006a0c           │     │        android:pathPattern=.*\.rtf
006a38   197     │     ├──data
006a5c           │     │        android:pathPattern=.*\.sxw
006a88   198     │     ├──data
006aac           │     │        android:pathPattern=.*\.tif
006ad8   199     │     ├──data
006afc           │     │        android:pathPattern=.*\.tiff
006b28   200     │     ├──data
006b4c           │     │        android:pathPattern=.*\.trc
006b78   201     │     ├──data
006b9c           │     │        android:pathPattern=.*\.txt
006bc8   202     │     ├──data
006bec           │     │        android:pathPattern=.*\.zip
006c18   203     │     ├──data
006c3c           │     │        android:pathPattern=.*\.ppt
006c68   204     │     └──data
006c8c           │              android:pathPattern=.*\.pptx
006ce8   207     ├──activity
006d0c           │        android:name=com.onyx.kreader.ui.ReaderTab1Activity
006d20           │        android:process=@7F0E0370
006d34           │        android:taskAffinity=com.onyx.kreader.ui.ReaderTab1Activity
006d48           │        android:excludeFromRecents=@7F050004
006d5c           │        android:launchMode=2
006d70           │        android:configChanges=0x40002fff
006d84           │        android:windowSoftInputMode=0x30
006db0   215     ├──activity
006dd4           │        android:name=com.onyx.kreader.ui.ReaderTab2Activity
006de8           │        android:process=@7F0E0371
006dfc           │        android:taskAffinity=com.onyx.kreader.ui.ReaderTab2Activity
006e10           │        android:excludeFromRecents=@7F050004
006e24           │        android:launchMode=2
006e38           │        android:configChanges=0x40002fff
006e4c           │        android:windowSoftInputMode=0x30
006e78   224     ├──activity
006e9c           │        android:name=com.onyx.kreader.ui.ReaderTab3Activity
006eb0           │        android:process=@7F0E0372
006ec4           │        android:taskAffinity=com.onyx.kreader.ui.ReaderTab3Activity
006ed8           │        android:excludeFromRecents=@7F050004
006eec           │        android:launchMode=2
006f00           │        android:configChanges=0x40002fff
006f14           │        android:windowSoftInputMode=0x30
006f40   233     ├──activity
006f64           │        android:name=com.onyx.kreader.ui.ReaderTab4Activity
006f78           │        android:process=@7F0E0373
006f8c           │        android:taskAffinity=com.onyx.kreader.ui.ReaderTab4Activity
006fa0           │        android:excludeFromRecents=@7F050004
006fb4           │        android:launchMode=2
006fc8           │        android:configChanges=0x40002fff
006fdc           │        android:windowSoftInputMode=0x30
007008   242     ├──activity
00702c           │        android:name=com.onyx.android.cropimage.CropImageActivity
007040           │        android:excludeFromRecents=@7F050004
00706c   245     ├──activity
007090           │        android:theme=@7F0F00B4
0070a4           │        android:name=com.onyx.kreader.ui.settings.phone.PhoneSettingsActivity
0070b8           │        android:excludeFromRecents=@7F050004
0070e4   249     ├──activity
007108           │        android:name=com.onyx.kreader.ui.settings.MainSettingsActivity
00711c           │        android:excludeFromRecents=@7F050004
007148   252     ├──activity
00716c           │        android:theme=@7F0F0008
007180           │        android:name=com.onyx.kreader.ui.settings.SettingsContainerActivity
007194           │        android:excludeFromRecents=@7F050004
0071c0   256     ├──activity
0071e4           │        android:name=com.onyx.kreader.ui.settings.KeySettingsActivity
0071f8           │        android:excludeFromRecents=@7F050004
007224   259     ├──activity
007248           │        android:name=com.onyx.kreader.ui.settings.TtsSettingsActivity
00725c           │        android:excludeFromRecents=@7F050004
007288   262     ├──activity
0072ac           │        android:name=com.onyx.kreader.ui.settings.TouchSettingsActivity
0072c0           │        android:excludeFromRecents=@7F050004
0072ec   265     ├──activity
007310           │        android:name=com.onyx.kreader.ui.DownloadActivity
007324           │        android:excludeFromRecents=@7F050004
007350   268     ├──activity
007374           │        android:label=@7F0E0521
007388           │        android:icon=@7F080574
00739c           │        android:name=com.onyx.kreader.ui.statistics.StatisticsActivity
0073b0           │        android:exported=true
0073c4           │        android:excludeFromRecents=@7F050004
0073f0   275     ├──activity
007414           │        android:name=com.onyx.kreader.ui.WebViewActivity
007428           │        android:hardwareAccelerated=true
007454   279     ├──provider
007478           │        android:name=com.onyx.android.sdk.data.db.OnyxStatisticsContentProvider_Provider
00748c           │        android:exported=true
0074a0           │        android:authorities=com.onyx.kreader.statistics.provider
0074cc   283     ├──provider
0074f0           │        android:name=com.onyx.android.sdk.data.db.OnyxDataBaseContentProvider_Provider
007504           │        android:exported=true
007518           │        android:authorities=com.onyx.content.database.ContentProvider
007544   287     ├──provider
007568           │        android:name=com.onyx.android.sdk.data.db.OnyxAccountContentProvider_Provider
00757c           │        android:exported=true
007590           │        android:authorities=com.onyx.account.database.ContentProvider
0075bc   291     ├──provider
0075e0           │        android:name=com.onyx.android.sdk.readerview.note.model.ReaderNoteContentProviderImpl
0075f4           │        android:exported=true
007608           │        android:authorities=com.onyx.kreader.note.provider
007634   296     ├──service
007658           │        android:name=com.onyx.android.sdk.readerview.service.ReaderService
00766c           │        android:exported=true
007698   299     ├──service
0076bc           │        android:name=com.onyx.android.sdk.readerview.test.PdfTestService
0076d0           │        android:exported=true
0076e4           │        android:process=:pdfTest
007710   303     ├──service
007734           │  │     android:name=com.onyx.android.sdk.readerview.service.ReaderMetadataService
007748           │  │     android:enabled=true
00775c           │  │     android:exported=true
007770           │  │     android:process=:metadataservice
007784   308     │  ├──intent-filter
0077a8   309     │  │  ├──action
0077cc           │  │  │        android:name=com.onyx.android.sdk.data.IntentFactory.ACTION_EXTRACT_METADATA
0077f8   311     │  │  ├──category
00781c           │  │  │        android:name=android.intent.category.DEFAULT
007848   313     │  │  ├──data
00786c           │  │  │        android:scheme=file
007880           │  │  │        android:host=*
0078ac   316     │  │  ├──data
0078d0           │  │  │        android:scheme=content
0078e4           │  │  │        android:host=*
007910   319     │  │  ├──data
007934           │  │  │        android:mimeType=application/pdf
007960   320     │  │  ├──data
007984           │  │  │        android:mimeType=application/caj
0079b0   321     │  │  ├──data
0079d4           │  │  │        android:mimeType=application/x-cbz
007a00   322     │  │  ├──data
007a24           │  │  │        android:mimeType=application/x-cbr
007a50   323     │  │  ├──data
007a74           │  │  │        android:mimeType=application/epub+zip
007aa0   324     │  │  ├──data
007ac4           │  │  │        android:mimeType=application/epub
007af0   325     │  │  ├──data
007b14           │  │  │        android:mimeType=application/mobi
007b40   326     │  │  ├──data
007b64           │  │  │        android:mimeType=application/x-mobipocket-ebook
007b90   327     │  │  ├──data
007bb4           │  │  │        android:mimeType=text/fb2+xml
007be0   328     │  │  ├──data
007c04           │  │  │        android:mimeType=application/x-fb2
007c30   329     │  │  ├──data
007c54           │  │  │        android:mimeType=application/fb2
007c80   330     │  │  ├──data
007ca4           │  │  │        android:mimeType=application/fb2.zip
007cd0   331     │  │  ├──data
007cf4           │  │  │        android:mimeType=application/fb2+zip
007d20   332     │  │  ├──data
007d44           │  │  │        android:mimeType=image/vnd.djvu
007d70   333     │  │  ├──data
007d94           │  │  │        android:mimeType=image/x-djvu
007dc0   334     │  │  ├──data
007de4           │  │  │        android:mimeType=application/vnd.amazon.ebook
007e10   335     │  │  └──data
007e34           │  │           android:mimeType=application/azw3
007e78   337     │  └──intent-filter
007e9c   338     │     ├──action
007ec0           │     │        android:name=com.onyx.android.sdk.data.IntentFactory.ACTION_EXTRACT_METADATA
007eec   340     │     ├──category
007f10           │     │        android:name=android.intent.category.DEFAULT
007f3c   342     │     ├──data
007f60           │     │        android:host=*
007f8c   343     │     ├──data
007fb0           │     │        android:scheme=file
007fdc   344     │     ├──data
008000           │     │        android:scheme=content
00802c   345     │     ├──data
008050           │     │        android:pathPattern=.*\.[pP][dD][fF]
00807c   346     │     ├──data
0080a0           │     │        android:pathPattern=.*\.[cC][aA][jJ]
0080cc   347     │     ├──data
0080f0           │     │        android:pathPattern=.*\.epub
00811c   348     │     ├──data
008140           │     │        android:pathPattern=.*\.epub\.zip
00816c   349     │     ├──data
008190           │     │        android:pathPattern=.*\.mobi
0081bc   350     │     ├──data
0081e0           │     │        android:pathPattern=.*\.fb2
00820c   351     │     ├──data
008230           │     │        android:pathPattern=.*\.fb2\.zip
00825c   352     │     └──data
008280           │              android:pathPattern=.*\.[dD][jJ][vV][uU]
0082dc   355     ├──service
008300           │        android:name=com.onyx.android.sdk.readerview.service.ReaderExportService
008314           │        android:enabled=true
008328           │        android:exported=true
00833c           │        android:process=:export_service
008368   360     ├──service
00838c           │        android:name=com.onyx.android.sdk.readerview.service.ReaderSyncService
0083a0           │        android:enabled=true
0083b4           │        android:exported=true
0083c8           │        android:process=:sync_service
0083f4   365     ├──service
008418           │        android:name=com.onyx.android.sdk.readerview.service.ReaderTab1WakeupService
00842c           │        android:enabled=true
008440           │        android:process=@7F0E0370
00846c   369     ├──service
008490           │        android:name=com.onyx.android.sdk.readerview.service.ReaderTab2WakeupService
0084a4           │        android:enabled=true
0084b8           │        android:process=@7F0E0371
0084e4   373     ├──service
008508           │        android:name=com.onyx.android.sdk.readerview.service.ReaderTab3WakeupService
00851c           │        android:enabled=true
008530           │        android:process=@7F0E0372
00855c   377     ├──service
008580           │        android:name=com.onyx.android.sdk.readerview.service.ReaderTab4WakeupService
008594           │        android:enabled=true
0085a8           │        android:process=@7F0E0373
0085d4   382     ├──activity
0085f8           │  │     android:name=com.onyx.android.sdk.translate.ui.web.WebQueryWordActivity
00860c           │  │     android:enabled=true
008620           │  │     android:exported=true
008634           │  │     android:screenOrientation=3
008648           │  │     android:windowSoftInputMode=0x30
00865c           │  │     android:hardwareAccelerated=true
008670   389     │  └──intent-filter
008694   390     │     ├──action
0086b8           │     │        android:name=android.intent.action.VIEW
0086e4   392     │     └──category
008708           │              android:name=android.intent.category.DEFAULT
008764   396     ├──uses-library
008788           │        android:name=org.apache.http.legacy
00879c           │        android:required=false
0087c8   399     ├──activity
0087ec           │        android:theme=@7F0F00A7
008800           │        android:name=com.onyx.android.sdk.cloudnote.note.evernote.ui.EvernoteAuthActivity
008814           │        android:launchMode=3
008840   403     ├──activity
008864           │        android:theme=@7F0F00A7
008878           │        android:name=com.evernote.client.android.EvernoteOAuthActivity
00888c           │        android:launchMode=3
0088b8   407     ├──activity
0088dc           │        android:theme=@7F0F00A7
0088f0           │        android:name=com.evernote.client.android.login.EvernoteLoginActivity
008904           │        android:launchMode=3
008930   411     ├──activity
008954           │        android:theme=@7F0F00A7
008968           │        android:name=com.onyx.android.sdk.cloudnote.note.dropbox.ui.DropBoxAuthActivity
008994   415     ├──meta-data
0089b8           │        android:name=com.google.firebase.ml.vision.DEPENDENCIES
0089cc           │        android:value=ocr
0089f8   419     ├──provider
008a1c           │  │     android:name=com.onyx.android.sdk.common.provider.OnyxFileProvider
008a30           │  │     android:exported=false
008a44           │  │     android:authorities=com.onyx.kreader.onyx.fileprovider
008a58           │  │     android:grantUriPermissions=true
008a6c   424     │  └──meta-data
008a90           │           android:name=android.support.FILE_PROVIDER_PATHS
008aa4           │           android:resource=@7F110005
008ae8   429     ├──meta-data
008b0c           │        android:name=com.bumptech.glide.integration.okhttp3.OkHttpGlideModule
008b20           │        android:value=GlideModule
008b4c   433     ├──service
008b70           │        android:name=com.liulishuo.filedownloader.services.FileDownloadService$SharedMainProcessService
008b9c   434     └──service
008bc0                    android:name=com.liulishuo.filedownloader.services.FileDownloadService$SeparateProcessService
008bd4                    android:process=:filedownloader
008c48
Renate is offline   Reply With Quote
Old 07-06-2022, 01:33 PM   #6
llinfeng
Enthusiast
llinfeng is on a distinguished road
 
Posts: 38
Karma: 58
Join Date: Jan 2019
Device: Kobo, Kindles, Sony DPTs, QQ-Read
Now I see where the magic string "com.onyx.kreader.ui.ReaderHomeActivity" came from.

Just to confirm:

1. That the scope of the long formatted XML content in "spoiler" are meant solely for NeoReader? I did a quick search and did not find any mentioning of the "save" feature.

2. And, before using apktool, I need to get my hands on the apk file first? Lastly, to draw apk from the device, I need to root the thing, am I right? If so, I really appreciate the help I have received in my Boox related threads thus far!
llinfeng is offline   Reply With Quote
Old 07-06-2022, 03:10 PM   #7
Renate
Onyx-maniac
Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.
 
Posts: 3,205
Karma: 12537601
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
No, you don't need to root to drag a system/priv-app out into the sunlight.
You do need to be rooted to get a Google Play app out.
Obviously, if it's sideloaded you already have it!

Usually you can only affect an app through an Intent or an injected keystroke.
Whether an app responds to "F7" is not as apparent as how it responds to an Intent.
Renate is offline   Reply With Quote
Old 07-07-2022, 12:35 AM   #8
winstonma
Zealot
winstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windowswinstonma format shifts faster than booting Windows
 
Posts: 110
Karma: 120918
Join Date: Nov 2013
Device: Onyx Boox Nova
Quote:
Originally Posted by llinfeng View Post
Great, it works - should I have recently opened a PDF file using the NeoReader, the adb shell command brought me back to the file! This serves my need perfectly!

Though, how did you figure out the "/com.onyx.kreader.ui.ReaderHomeActivity" bit? When I went into the adb shell, tab-completion never worked, and I wonder what's the proper procedure to "discover" the proper command to issue.

Oh, one funny thing - I also tried to contact Boox support asking them to complete the list of intents. They asked me to read their GitHub repo for the SDK instead ... lol
Just open the App and run the following command (replace com.onyx.kreader with the package name of your app):

Code:
dumpsys package | grep Activity | grep com.onyx.kreader
This command shows the activity running on the screen. But this doesn't always work (e.g. Neoreader doesn't work). This method should allow you to know how to open Notes app too.

Last edited by winstonma; 07-07-2022 at 01:14 AM.
winstonma is offline   Reply With Quote
Old 07-07-2022, 06:42 PM   #9
llinfeng
Enthusiast
llinfeng is on a distinguished road
 
Posts: 38
Karma: 58
Join Date: Jan 2019
Device: Kobo, Kindles, Sony DPTs, QQ-Read
A collection of adb shell commands for activating Note/NeoReader/OneNote

Quote:
Originally Posted by winstonma View Post
Code:
dumpsys package | grep Activity | grep com.onyx.kreader
This command shows the activity running on the screen. But this doesn't always work (e.g. Neoreader doesn't work). This method should allow you to know how to open Notes app too.
Thanks again. With the one-liner you suggested, I was able to uncover a few more useful things (from a Lumi 2 running 3.2.3):

* Open the `App Store`: `adb shell am start -n com.onyx.appmarket/.activity.AppMarketActivity`
* Activate OneNote: `adb shell am start -n com.microsoft.office.onenote/.ui.EntryActivity`
* Switch to Notes (this is not the normal notes interface, but usable): `adb shell am start -n com.onyx.android.note/.note.ui.InsertImagesActivity`
* Open "Wiktionary" (or ther search tools) that happens to be part of NeoReaderd: `adb shell am start -n com.onyx.kreader/com.onyx.android.sdk.translate.ui.web.WebQueryWord Activity`

(I don't see a good way to typeset inline code, so I kept the raw Markdown markers.)
llinfeng is offline   Reply With Quote
Old 07-07-2022, 07:42 PM   #10
llinfeng
Enthusiast
llinfeng is on a distinguished road
 
Posts: 38
Karma: 58
Join Date: Jan 2019
Device: Kobo, Kindles, Sony DPTs, QQ-Read
Cannot write in NeoReader with the adb switch command

Quote:
Originally Posted by winstonma View Post
This adb shell command should open the NeoReader

Code:
am start -n com.onyx.kreader/com.onyx.kreader.ui.ReaderHomeActivity
I am using Onyx Nova so I don't have the Note app to test.
Update: upon activating the NeoReader again, it seems like the "focus" is shifted somewhere else and the newly summoned NeoReader app does not admit pen-input anymore.
* Note 1: by "focus", here is what I observe - when switching back to NeoReader for the first time, the whole PDF file will be covered by a grayish color, indicating that the focus is shifted to a UI element that spans the whole screen;
* Note 2: upon executing the command for the second time, pen inputs were treated as touch inputs.

I tried two ways to launch the NeoReader, but the pen is equally useless in either cases - when NeoReader is summoned with the adb command, the pen won't work as a writing device until I **launch** NeoReader again.
1. With Files by Google, I was able to directly open a PDF in NeoReader. Yet, when I go to the "Recent Programs" view, NeoReader is not there. Though, the adb command was able to recover the viewing session if I revisit it within a few hours;
2. With the native Library tool, I can open PDF in NeoReader for sure. This time, NeoReader 3.0 does exist in the "Recent Programs" view. Still, should I launch the adb command for once, summoning the NeoReader using the "Recent Program" list won't get me pen-input. I need to launch NeoReader again by going back to the Library app and tapping on the file again.

Mainly, I'd like to document how things behave on Lumi 2. If there is another adb magic, please let me know. Among the list of programs printed with "dumpsys package", I only find one thing that has to do with "pen" and nothing has to do with "focus". And, this particular entry, "com.onyx.android.note/.note.test.PenTestActivity", is actually for a standalone pen test.
llinfeng is offline   Reply With Quote
Old 07-07-2022, 08:45 PM   #11
Renate
Onyx-maniac
Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.
 
Posts: 3,205
Karma: 12537601
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
I dunno. Why don't you give it a file to open?
Code:
am start -n com.onyx.kreader/.ui.ReaderHomeActivity -d file:///sdcard/whatever.pdf
(You can shorten the Activity class name by the common bit of the package name. A dot must succeed the slash.)

Quote:
Originally Posted by llinfeng View Post
Yet, when I go to the "Recent Programs" view, NeoReader is not there.
Because AndroidManifest.xml says:
Code:
activity
     android:name=com.onyx.kreader.ui.ReaderHomeActivity
     android:excludeFromRecents=true
Renate is offline   Reply With Quote
Old 07-08-2022, 10:31 AM   #12
llinfeng
Enthusiast
llinfeng is on a distinguished road
 
Posts: 38
Karma: 58
Join Date: Jan 2019
Device: Kobo, Kindles, Sony DPTs, QQ-Read
Thanks a lot for helping me understand why there are times when I cannot find NeoReader (or kreader) in Recent Programs view. I assume there should be another activity entry in AndroidManifest.xml, where the NeoReader is set to be visible? The happens when I open a PDF file using the Library app.

Question about opening a file by its full path:

I tried three variants for the full path, and I would be stuck with the following view regardless of which spelling of the full path I use. The texts read "BOOX Neo Reader Loading document", with a cancel button.



The variants are
Code:
am start -n com.onyx.kreader/.ui.ReaderHomeActivity -d /storage/emulated/0/ScratchBox/PDF_2022-07-08-091146.pdf
am start -n com.onyx.kreader/.ui.ReaderHomeActivity -d file://storage/emulated/0/ScratchBox/PDF_2022-07-08-091146.pdf
am start -n com.onyx.kreader/.ui.ReaderHomeActivity -d file:///storage/emulated/0/ScratchBox/PDF_2022-07-08-091146.pdf
I got the full path to the PDF file using Files by Google, where it was listing "/storage/emulated/0/ScratchBox/PDF_2022-07-08-091146.pdf" for the file.

Oh, per the lack of pen-input when the NeoReader does get resumed with the previous file loaded, any quick fix? Say, is there something that may switch to a most recent app even when it is not "visible" in the Recent Programs view? (On a Samsung phone, when I summon the Recent Programs view twice, the previous app gets loaded in full-screen mode.)
llinfeng is offline   Reply With Quote
Old 07-08-2022, 12:24 PM   #13
Renate
Onyx-maniac
Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.
 
Posts: 3,205
Karma: 12537601
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
Sorry, I've just been shooting from the hip because I don't use the NeoReader and I can't be bothered to pm enable it.

It could be that they never correctly implemented the file: scheme and that they only use the content: scheme.

Does this execute happily?
Code:
am start -a com.onyx.android.sdk.data.IntentFactory.ACTION_EXTRACT_METADATA -c android.intent.category.DEFAULT -d file:///sdcard/whatever.pdf
Renate is offline   Reply With Quote
Old 07-08-2022, 03:41 PM   #14
llinfeng
Enthusiast
llinfeng is on a distinguished road
 
Posts: 38
Karma: 58
Join Date: Jan 2019
Device: Kobo, Kindles, Sony DPTs, QQ-Read
Here is what I have, after correcting the file path to something that does exit locally. Are we done trying to ask NeoReader to load a specific file? (There should be a secondary challenge that the "focus" is shifted elsewhere, such that the pen tip should act as a touch input.)

Code:
$ adb shell am start -a com.onyx.android.sdk.data.IntentFactory.ACTION_EXTRACT_METADATA -c android.intent.category.DEFAULT -d  file:///storage/emulated/0/ScratchBox/PDF_2022-07-08-091146.pdf
Starting: Intent { act=com.onyx.android.sdk.data.IntentFactory.ACTION_EXTRACT_METADATA cat=[android.intent.category.DEFAULT] dat=file:///storage/emulated/0/ScratchBox/PDF_2022-07-08-091146.pdf }
Error: Activity not started, unable to resolve Intent { act=com.onyx.android.sdk.data.IntentFactory.ACTION_EXTRACT_METADATA cat=[android.intent.category.DEFAULT] dat=file:///storage/emulated/0/ScratchBox/PDF_2022-07-08-091146.pdf flg=0x10000000 }
llinfeng is offline   Reply With Quote
Reply

Tags
adb, intent, neoreader, onyx boox


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Open PDFs in neoreader from other software tdehaeze Onyx Boox 9 06-14-2020 12:02 PM
Opening web pages within Notes or Neoreader app? Faeryink Onyx Boox 3 11-30-2018 02:03 PM
Handwritting notes on NeoReader on devices without pen Germanc Onyx Boox 0 09-29-2016 08:01 PM
Neoreader epub notes save location fuli42 Onyx Boox 5 04-29-2015 05:42 AM
How to open pdf file with e-ink reader from the shell/adb? Regiomontanus enTourage Archive 0 09-01-2010 12:56 PM


All times are GMT -4. The time now is 09:14 AM.


MobileRead.com is a privately owned, operated and funded community.