Thanks to Koshu and all contributors for the CM9 port. It is amazing. I am finally using the tablet on a daily basis.
One app that I would like to work with the CM9 port is MyScript Stylus Mobile.
I have restored the app using Titanium Backup from one of my nandroid backups. The app restored without a problem. But everytime I try to run it (use it as an input method), I get the following error message:
Compatibility error. This version of MyScript Stylus if not compatible with this device.
So my question: Is there something that I can change in CM9 that would trick the app in to thinking that this is the stock Lenovo ROM? For example, could it be as simple as changing the device id in build.prop?
I can provide a logcat if that would help someone figure out what exactly the app is trying to verify.
Thanks.
I pulled the build.prop off my nandroid backup and compared it to the current build.prop. Based on that comparison here are the list of items that are different:
ro.build.id
ro.build.display.id
ro.build.version.incremental
ro.build.version.sdk
ro.build.version.release
ro.build.date
ro.build.date.utc
ro.build.type
ro.build.user
ro.build.host
ro.build.tags
ro.product.model
ro.product.brand
ro.product.name
ro.product.device
ro.product.manufacturer
ro.build.product
ro.build.description
ro.build.fingerprint
**And this was not in the original build.prop
ro.cm.device=thinkpadtablet
Can someone help me identify what I can change without having any negative side effects?
For example, which ones are merely identifiers that have no deeper connection to the OS.
Of course, I am assuming that the MyScript Stylus app is just looking for some simple information (such as ro.product.manufacturer) as verification. So, if I change it back to the original the app will work.
Thanks.
Modifying the build.prop as far as I know is safe. In my case I've completely swapped out the whole build.prop when trying to get an incompatible game to work. I simply replaced the build.prop with that of a galaxy tab 10.1. I have also done this before on my galaxy s2. Its called spoofing the build.prop lol.
Anyway the bottom line is that its completely safe to modify your build.prop as it has no boot functions, so it won't brick your device. Just backup ur current build.prop and then replace it with the one from the original thinkpad stock rom.
The only issue you may have is if you have apps that depend on recognizing your current build.prop but since you're on a cm9 port I doubt that. So its safe. But backup as you may need to replace the build.prop when flashing a rom or update.
The build.prop is somewhere in the system folder (can't remember exact path but will check for u)
Overall, doing anything to your build.prop is safe and reversible but if you still want to just edit lines in it, it's still safe but I don't know what lines to edit to make that app work.
Thanks for the reply.
Unfortunately, it didn't work out. I replaced all the values for the items in build.prop that I mentioned above using the info from the original Lenovo build.prop. However, the tablet got stuck in a bootloop after rebooting. The Lenovo logo comes up, but the image that comes immediately after that just keeps cycling.
I also wasn't able to push the backup build.prop file through adb due to permission issues. This was unexpected as the tablet is rooted (obviously).
So I just restored a previous backup using CWM.
Due to what happened, it seems like the boot sequence does verify something from the build.prop file. It seems like I am stuck until I figure out (with someone's help) what exactly the app is trying to verify - hopefully it isn't something that is also verified during boot.
Thanks, again, for the help.
Any other suggestions?
Like I said, swap out the build.prop file. Its possible that while editing the values, you made a mistake. Just copy the stock build.prop and use to root file explorer to replace it. If you are good with adb/terminal then that's a better option as you can use root terminal to replace the file. I'm surprised that you have issues when editing your build.prop because I'm on the cm9 port but using my galaxy tab's build.prop without any issues
Did you try installing it from the market? In the past i had sometimes problems with restoring titanium backups to new roms, but thats app dependent. And could you find anything usefull in the logcat?
darkhandsome18 said:
Like I said, swap out the build.prop file. Its possible that while editing the values, you made a mistake. Just copy the stock build.prop and use to root file explorer to replace it. If you are good with adb/terminal then that's a better option as you can use root terminal to replace the file. I'm surprised that you have issues when editing your build.prop because I'm on the cm9 port but using my galaxy tab's build.prop without any issues
Click to expand...
Click to collapse
Unfortunately swapping the file didn't work either. I got stuck in the same boot loop.
If you don't mind could you send me a link to the Galaxy Tab build.prop that you are using. That may help me identify what I can and can't change. Thanks.
Koshu said:
Did you try installing it from the market? In the past i had sometimes problems with restoring titanium backups to new roms, but thats app dependent. And could you find anything usefull in the logcat?
Click to expand...
Click to collapse
Koshu thanks for the input. I hadn't considered installing it from the market.
The app is only available on the Lenovo App Store - so I installed that and then installed the MyScript Stylus app through the App Store. Unfortunately, that didn't make any difference. I am still getting the exact compatibility error when I try to run the app.
I haven't seen anything obvious in the logcat that would point towards the verification that the app is doing. However, I don't really know what to look for. I will upload the logcat.
Here's the logcat.
What I did while generating the logcat: I opened Dolphin Browser and switched the input method to MyScript Stylus. When the compatibility error came up I just clicked on "Close" four or five times, and then I clicked on "Change IM" and picked the Android keyboard.
SOLVED
It turns out that all that was required was to change the following lines in the build.prop file
ro.product.model=ThinkPad Tablet
ro.product.brand=Lenovo
I decided to try changing only those lines after watching this:
youtube.com/watch?v=cssyIE4maZY
MyScript Stylus is now working perfectly.
Also -in case anyone is interested- after making this change to the build.prop, the MyScript Notes Mobile app is also working (had the same compatibility issues).
Thanks to darkhandsome18 and Koshu for the replies.
Guys I heard by changing the DPI of Oxygen OS reduces lag..
It even improves the laggy camera app..
Never heard before..
If yes best way to change DPI & how much wil be better?
Root, then install le dpi changer.
It's just "ro.sf.lcd_density" property in build.prop file.
No need to install all kind of special apps. Just edit the file (root needed for editing system file) and reboot.
I found ro.sf.lcd_density=400 to be good enough zoom out,
so more stuff can fit on screen but still things are readable.
Use adb command from your PC: " adb shell wm density XXX" where xxx is your desired dpi. This can be done on rooted or non rooted devices.
I currently use 240 dpi but you can try different ones to find the right one that suits you.
Sent from my ONE A2005 using Tapatalk
I'm pretty confused... I'm running Cataclysm with regular root (not systemless) and I've modified the build.prop (shows the modified value even after reboot) to change my screen dpi but upon reboot my dpi stays unchanged. Any ideas? I've tried to change the dpi through the adb method and that works but it shows some odd behavior in play store (some icons being too large, etc.) that other people say don't occur if you modify build.prop.
bgymn2000 said:
I'm pretty confused... I'm running Cataclysm with regular root (not systemless) and I've modified the build.prop (shows the modified value even after reboot) to change my screen dpi but upon reboot my dpi stays unchanged. Any ideas? I've tried to change the dpi through the adb method and that works but it shows some odd behavior in play store (some icons being too large, etc.) that other people say don't occur if you modify build.prop.
Click to expand...
Click to collapse
I'm running cataclysm as well. Changing the build prop works fine for me. Maybe it's the file manager application? I've had it happen to me when I first got my 6p and tried using root explorer. Also, make sure that you are actually saving the new build.prop and the values change before doing a FULL reboot
I had this exact problem on stock. I ended up downloading one of those DPI changer apps on the play store and it worked.. I have changed bp many times in the past. Don't know what was happening.
Sent from my Nexus 6P using Tapatalk
I tried dpi changers and build.prop editor apps and nothing works. I can change the model name and see the change reflected in the "about phone" section of settings so I know that the build.prop is being successfully edited. It just seems like my phone refuses to read the lcd_density line.
An update in case someone else runs into this problem. I can get the desired proper scaling if I change the build.prop value and use adb shell wm density with the same value in the build.prop. This fixes the scaling annoyances that I see from using adb shell wm density only to make the dpi smaller. I'm guessing the reason I can't use build.prop only to change the dpi is because I first tried to change the dpi using adb. For some reason that must trigger something and both places have to be changed.
Hey guys was just wondering if anyone can post a video with a changed DPI? I'm not routes and I heard it can be done without root but wanted to see what it looks like first would really appreciate it
syphern said:
Hey guys was just wondering if anyone can post a video with a changed DPI? I'm not routes and I heard it can be done without root but wanted to see what it looks like first would really appreciate it
Click to expand...
Click to collapse
Not sure where you heard it can be done without root. Because it simply can't. Without root you cannot modify system files.
Sent from my Nexus 6P using Tapatalk
It can be done without root but needs to be done using ADB on a PC.
On your PC while the phone is connected:
ADB shell
WM density 480 (or whatever you want for your device)
Restart your device to complete.
Just try it. U can easily go back to default. But i promise, u dont want :b
I am rooted on my Nexus 6P, although I cannot get it to change the dpi settings.
I tried using texdroider_dpi, tried the adb method and even went to /system/build.prop and changed it via ES File Explorer.
When I set the DPI to anything but 560 my SwiftKey Keyboard breaks but the overall screen density doesn't change.
The value I entered is still displayed in the build.prop though ..
I had it changed already, but when I updated to the latest security patch 2016 I had to reinstall my phone since I flamingod something I guess.
Went ahead with Heisenbergs guide and followed Step 11 (http://forum.xda-developers.com/nexus-6p/general/guides-how-to-guides-beginners-t3206928) to get my phone back to work. Only thing not working now is the dpi change ..
Any help?
Are you mounting system as R/W and saving the build.prop after you change the value?
dastinger said:
Are you mounting system as R/W and saving the build.prop after you change the value?
Click to expand...
Click to collapse
I didn't specifially mount the system as R/W - but when I restart the device afterwards the change is still persistent.
Try using another File Explorer (Fx with the root add-on for example) and make the change with that one mounting as R/W before doing anything else.
dastinger said:
Try using another File Explorer (Fx with the root add-on for example) and make the change with that one mounting as R/W before doing anything else.
Click to expand...
Click to collapse
I love you. #nohomo
Thank you very much.
[emoji4]
No problem, mate.
clubtech said:
It can be done without root but needs to be done using ADB on a PC.
On your PC while the phone is connected:
ADB shell
WM density 480 (or whatever you want for your device)
Restart your device to complete.
Click to expand...
Click to collapse
I do this but my Swiftkey is broken and some image elements are huge.
Does anyone know why something like texdroider used to work perfectly scaling everything and now it does not?
Before this update, after flashing the SuperSU 2.66 my twrp would give me the warning my phone was not rooted. Now, I do not receive this warning.
Sent from my Nexus 6P using Tapatalk
I have rooted my BTV-W09 model. When I use 'adb shell wm density 320' from my computer terminal, the dpi setting is adjusted correctly, but it doesn't survive a reboot.
I tried to change the dpi setting with a build.prop editor directly on the tablet and with the Textdroider DPI app, but it doesn't work, it goes back to whatever DPI settings was implied by the display settings (from Small-400dpi to Large-480dpi).
Is there a way to permanently change the DPI setting to 320, or at least a way to do it directly from the tablet (without a computer)?
Why you not reading neighbor topics? Install Xposed, install App Settings module from here for example, activate it and setup whatever DPI you wish.
Thanks Slavon, but I'm speaking of a system-wide change, not just app by app. English is not my first language, sorry if it wasn't clear.
Sorry if I was a bit rude. Try "Pimp my rom" utility. Find it on Google Play. I worked for me and now I'm thinking of how to revert
Edit: if I got it right, this utility adds (modifies?) this key in build.prop: ro.sf.lcd_density
Not at all, I understand how it seemed like I was asking a duplicate question without looking in others threads, sorry again
And thanks a lot for the advice, I'll try Pimp my rom right away !
wlausrsker said:
Not at all, I understand how it seemed like I was asking a duplicate question without looking in others threads, sorry again
And thanks a lot for the advice, I'll try Pimp my rom right away !
Click to expand...
Click to collapse
If you just need to change density, you'd better try changing the value in build.prop first. And in case of any problems after, change the value of the key I wrote previously or restore the original build.prop from backup. Good luck.
Slavon-93 said:
If you just need to change density, you'd better try changing the value in build.prop first. And in case of any problems after, change the value of the key I wrote previously or restore the original build.prop from backup. Good luck.
Click to expand...
Click to collapse
I've tried this morning to change ro.sf.lcd_density to 320 in the build.prop and reboot. After reboot, ro.sf.lcd_density is still set to 320 but the display is still at 400dpi.
It's like ro.sf.lcd_density has no impact on the display dpi except for the display mode (tablet, phone, etc.).
Screen settings/Small + ro.sf.lcd_density=320 -> tablet mode in Chrome and 400dpi
Screen settings/Small + ro.sf.lcd_density=400 -> phone mode in Chrome and 400dpi
Screen settings/Large + ro.sf.lcd_density=320 -> tablet mode in Chrome and 480dpi
Screen settings/Large + ro.sf.lcd_density=400 -> phone mode in Chrome and 480dpi
I think maybe the DPI setting from build.prop is replaced during boot with the screen setting (Small:400dpi, Medium:440dpi, Large:480dpi). Could a init.d script could change the value after boot? I'll try tonight if the tablet allows init.d scripts to run.
Well, ok. I only quickly looked through the decompiled code. Change dpi with the app then, it'll make a backup of build. prop and try to compare both files - new and backup. I could have missed something. Just to mention, I didn't like the way tablet had behaved after changing DPI. EMUI is not well-designed for this. It's much better to set DPI for apps and leave it unmodified for system.
@wlausrsker this is covered in the apps running in phone mode thread. I posted there that the adb dpi change settings will stick after rebooting if you run the command "adb shell wm density 340 && adb reboot"*
*Use whatever density works best for you, I have found that 330 works best for me with the view mode and font set to large.
Slavon-93 said:
Change dpi with the app then, it'll make a backup of build. prop and try to compare both files - new and backup. I could have missed something.
Click to expand...
Click to collapse
johje said:
@wlausrskerI posted there that the adb dpi change settings will stick after rebooting if you run the command "adb shell wm density 340 && adb reboot"
Click to expand...
Click to collapse
johje, thanks but I tried it first and it doesn't survive reboot ("./adb shell wm density 320 && ./adb reboot" since I'm on Mac, it reboots in 400dpi).
Slavon, I've compared the files from before and after changing the dpi setting with the app, only ro.sf.lcd_density is changed, so you didn't miss anything.
Since methods successfully used by you and others don't work for me, it must be something I did differently on setting up my tablet. I used greatslon mod of TWRP and then flashed via TWRP the latest SuperSU (v2.79-SR1). Finally, I installed XposedInstaller and got xposed-v87-sdk23-arm64. Did any of you with reboot-surviving custom dpi setting used something different? (like the SRK Tool)
I'm off this weekend but I'll try next week to start over from scratch.
the reason adb change dpi and even build.prop change doesn't work is because huawei has set lcd_density in boot image. check content of /init.6x.rc
these init files are part of boot.img and will be overwritten at every boot. so what u need is a modified boot.img where this set lcd_density line is removed. Once you install that boot, you can set whatever dpi in build.prop and it will work. even adb dpi change will be persistent.
if you are on b026, i can share my edited boot.img
Thanks for the explanation bark1234, I now understand why everything I tried didn't survive reboot!
Thanks also for proposing your edited B026 boot.img but I'm on BTV-W09C100B005 and I can't find any B026 download for BTV-W09. From what I understand from other threads the latest Chinese OTA for the BTV-W09 is the BTV-W09C233B022, so I couldn't use it. Nevertheless, if you could maybe share it for others, it could help someone with the same problem on a BTV-DL09.
I tried to edit my boot.img but I'm a newbie. I've tried to extract my boot.img but I have no result with "cat /proc/mtd", so I extracted mmcblk0boot0 as a best guess. I tried to install abootimg to edit it but there's not blkid.h on Mac OS so I can't build it. If I give you what I extracted, could you maybe edit it like you did with yours? You would save me from applying at random a bunch of tutorials like I just did and hoping it will result in something usable In the meantime, I'll try and learn how to edit a boot.ini with my setup.
bark1234 said:
the reason adb change dpi and even build.prop change doesn't work is because huawei has set lcd_density in boot image. check content of /init.6x.rc
these init files are part of boot.img and will be overwritten at every boot. so what u need is a modified boot.img where this set lcd_density line is removed. Once you install that boot, you can set whatever dpi in build.prop and it will work. even adb dpi change will be persistent.
if you are on b026, i can share my edited boot.img
Click to expand...
Click to collapse
Just as an FYI, the adb dpi change initiated along with the reboot command has stuck for me after multiple reboots.
wlausrsker said:
Thanks for the explanation bark1234, I now understand why everything I tried didn't survive reboot!
Thanks also for proposing your edited B026 boot.img but I'm on BTV-W09C100B005 and I can't find any B026 download for BTV-W09. From what I understand from other threads the latest Chinese OTA for the BTV-W09 is the BTV-W09C233B022, so I couldn't use it. Nevertheless, if you could maybe share it for others, it could help someone with the same problem on a BTV-DL09.
I tried to edit my boot.img but I'm a newbie. I've tried to extract my boot.img but I have no result with "cat /proc/mtd", so I extracted mmcblk0boot0 as a best guess. I tried to install abootimg to edit it but there's not blkid.h on Mac OS so I can't build it. If I give you what I extracted, could you maybe edit it like you did with yours? You would save me from applying at random a bunch of tutorials like I just did and hoping it will result in something usable In the meantime, I'll try and learn how to edit a boot.ini with my setup.
Click to expand...
Click to collapse
If you are rooted, use flashfire app to get ur current boot.img from ur phone. and then copy it out to edit.
The tool i use for editing works on windows. i too have mac only, i have windows on vm in it.
https://www.dropbox.com/s/x46q5nzv49iauwi/Android Image Kitchen.rar?dl=1
Use above link to download tool i use.
unpackimg.bat will unpack boot img.
your init.x files will be in ramdisk, edit it there.
and then use repackimg.bat, it will create new boot.img.
johje said:
Just as an FYI, the adb dpi change initiated along with the reboot command has stuck for me after multiple reboots.
Click to expand...
Click to collapse
bark1234 said:
If you are rooted, use flashfire app to get ur current boot.img from ur phone. and then copy it out to edit.
The tool i use for editing works on windows. i too have mac only, i have windows on vm in it.
https://www.dropbox.com/s/x46q5nzv49iauwi/Android Image Kitchen.rar?dl=1
Use above link to download tool i use.
unpackimg.bat will unpack boot img.
your init.x files will be in ramdisk, edit it there.
and then use repackimg.bat, it will create new boot.img.
Click to expand...
Click to collapse
johje, it won't stuck for me, no matter how I try. Did you root by flashing the latest SuperSU? Did you installed xposed framework?
bark1234, thank you very much for the detailled explanation, I'll use Flashfire app to extract my boot.img and I'll try tomorrow at work on my Windows machine to edit it.
@wlausrsker I have not yet rooted my tablet. Once I got the dpi/phone apps issue fixed, it reduced my urgency for rooting. However, I will be rooting it soon, since a way has been found to enable the 5Ghz wireless adapter for the US version of the tablet. I will let you know if I am able to keep the dpi settings after rooting.
bark1234 said:
If you are rooted, use flashfire app to get ur current boot.img from ur phone. and then copy it out to edit.
unpackimg.bat will unpack boot img.
your init.x files will be in ramdisk, edit it there.
and then use repackimg.bat, it will create new boot.img.
Click to expand...
Click to collapse
Thanks again for the link and the explanation, it was really a painless process.
I used Flashfire app on my tablet to backup my boot.img (it resulted in a boot.lz4 file).
On my Windows machine, in a cmd window:
Code:
lz4 boot.lz4
unpackimg.bat boot
I then opened in Notepad++ the /ramdisk/init.61262.rc file to remove the line setprop ro.sf.lcd_density 560 in the on early-init and on boot sections of the file and saved.
In the cmd window:
Code:
repackimg.bat
rename image-new.img boot.img
I now have an edited boot.img to flash in TWRP. Does it seems to you that I did the editing correctly? The edited boot.img is 13.35Mb (about the same as the boot.lz4) but the extracted boot file before the unpacking was 32.77Mb. Is it normal?
13.9 is correct size. install this boot.img
For those of us following along. Does the edited boot image have to be flashed by TWRP in zip form? Or can we use Fastboot to flash it? or both will work?
I've done the edit's and have what I believe is a flashable zip. I personally like to use fastboot.
I have DPI set and holding by adb as I mentioned before but this is still nice to have.
Thanks
OP - here's a really easy way to change dpi and make it stick: https://play.google.com/store/apps/details?id=com.texdroider.texdroider_dpi
I'm using it on my MediaPad M3 without issues. PS - 320 is my preferred dpi as well, but I found it caused some issues like Settings would crash. I'm using 322 now without any issue for the last couple weeks. Enjoy