[ROM][Development] Started work on G530W CM 12.1 Custom ROM - Galaxy Grand Prime General

EDIT: Please direct any development questions, queries, etc. to the new thread in the Development Forum, concerning all development-y things.
http://forum.xda-developers.com/grand-prime/development/unofficial-cyanogenmod-12-1-g530w-t3424761
============================================================
I've recently started working on a custom ROM for the Samsung Grand Prime G530W [gprimeltevl/gprimeltecan], and so far I have built a somewhat working ROM (without any radio/wireless capability or audio for now).
If there is interest in this project (which I think there is; the lack of any kind of love shown for the G530W is annoying), I'll continue hacking away at it until I (hopefully) have a working ROM.
I'm new to Android ROM building in general, and there have been several bumps along the way, so any help would be appreciated.
Thanks.

I will be uploading images daily to my Drive storage, in folders named by date (if the date today is not there, then the image had not been built or uploaded yet), and will be compressing the system.tar images with either gzip or xz to reduce the image size.
I will also be updating this area with issues and fixes as necessary.
What I have managed to get working so far (23/07/2016)
Limited mobile connectivity [ sending/receiving texts ].
- Calls can be received or made but there is no audio (speaker or microphone).
- Mobile data is not working.
- Currently the system does not show the mobile connection as active, but texts can still be sent and received.
Bluetooth is working
Audio is working (microphone, speaker)
Multimedia playback working
GPS is working
Wifi is working
Screen brightness controls working
Sensors are working (magnetic, rotation/gyro,proximity)
App installation is now working
Camera is kinda working - only back camera works, and the image is distorted.
Issues
Radio [ modem ] is not working properly
NFC is not working
MTP is not working
Cameras are not working
Here is a link to the system.tar, boot.tar and recovery.tar flashable by ODIN or fastboot (when unpacked).
https://drive.google.com/open?id=0B-bYwctD_MoDaWJGcUQ4eWtzRTQ
Project GitHub Repositories:
https://github.com/vince2678/android_device_samsung_gprimeltecan
https://github.com/vince2678/android_vendor_samsung_gprimeltecan
If there are any other issues I missed, let me know.

Great effort
vince2678 said:
I managed to compile and get an image working for the G530W.
What I have managed to get working so far
Bluetooth is working
Audio is working (microphone, speaker)
Multimedia playback working
GPS is working
Sensors are working (magnetic, rotation/gyro,proximity)
Issues
Device fails to unlock and heats up [only once, so far]
Wifi is not working
Radio [ modem ] is not working
User interface crashes periodically
Screen brightness controls not working
MTP is not working
Cameras are not working
Here is a link to the system.tar, boot.tar and recovery.tar flashable by ODIN or fastboot (when unpacked).
https://drive.google.com/folderview?id=0B-bYwctD_MoDVzd0eS1aaDV6RW8&usp=sharing
I'll be working at it to get at least the Wifi working, if there are any other issues I missed, let me know.
Click to expand...
Click to collapse
Good work so far!
I recently purchased a g530w and I would love to boot the stock ROM.
However, I am still busy researching and reading up on this device before I attempt to flash anything. Actually, I did create an update zip file to remove Skype and tried applying it while not rooted but it failed because it was not properly signed.
Anyway, I will watch your progress with keen interest!

Zippy Dufus said:
Good work so far!
I recently purchased a g530w and I would love to boot the stock ROM.
However, I am still busy researching and reading up on this device before I attempt to flash anything. Actually, I did create an update zip file to remove Skype and tried applying it while not rooted but it failed because it was not properly signed.
Anyway, I will watch your progress with keen interest!
Click to expand...
Click to collapse
Sounds interesting. Did you try rooting your phone and using Link2SSD to remove the app(s)? It works pretty well, and you don't have to go through the whole effort of packing and unpacking the ROM.

vince2678 said:
Sounds interesting. Did you try rooting your phone and using Link2SSD to remove the app(s)? It works pretty well, and you don't have to go through the whole effort of packing and unpacking the ROM.
Click to expand...
Click to collapse
Here's my plan for my new phone:
Reading and research (in progress)
Setting up Odin on a virtual machine (I am a Linux user) and testing a restore of the stock ROM. Do you have a good link to such a ROM? I briefly looked at http://www.sammobile.com/firmwares/ and this site looks a little sketchy to me.
Root the device. I believe the method described in this G530T thread has worked for our G530W.
Debloat the crapware. Surprisingly, there is not all that much on the device - mostly some Micro$oft crap, Skype, and an old, old version of Chrome which I cannot uninstall. As root, I'll just go in and delete the unwanted stuff from /system/app using a terminal emulator.
Once it get this far, I can probably live with stock Lollipop. Question, if you are learning how to port a ROM, have you considered starting with Marshmallow? I'm keen to move up.
Build the ROM myself and then attempt to build it with my Linaro toolchain which I built from scratch myself.
Questions, with what you know so far, will the G530H ROM in this thread work on our phone? Is this what you started from? What differences between the 2 devices what preclude it from working on ours - different hardware? software - i.e. different bootloader?, etc?

Zippy Dufus said:
Here's my plan for my new phone:
Reading and research (in progress)
Setting up Odin on a virtual machine (I am a Linux user) and testing a restore of the stock ROM. Do you have a good link to such a ROM? I briefly looked at http://www.sammobile.com/firmwares/ and this site looks a little sketchy to me.
Root the device. I believe the method described in this G530T thread has worked for our G530W.
Debloat the crapware. Surprisingly, there is not all that much on the device - mostly some Micro$oft crap, Skype, and an old, old version of Chrome which I cannot uninstall. As root, I'll just go in and delete the unwanted stuff from /system/app using a terminal emulator.
Once it get this far, I can probably live with stock Lollipop. Question, if you are learning how to port a ROM, have you considered starting with Marshmallow? I'm keen to move up.
Build the ROM myself and then attempt to build it with my Linaro toolchain which I built from scratch myself.
Questions, with what you know so far, will the G530H ROM in this thread work on our phone? Is this what you started from? What differences between the 2 devices what preclude it from working on ours - different hardware? software - i.e. different bootloader?, etc?
Click to expand...
Click to collapse
Hey Zippy,
That sounds like a good idea.
That website does seem kinda sketchy, and their downloads take millenia, but it's the only option available and their images actually work (just make sure to get the correct one).
Setting up a virtual machine is a good idea, because heimdall doesn't work with this device and I'm not keen on bricking my device trying to force it.
Rebooting between builds to test firmwares because of a lack of a good recovery was becoming a pain. (CyanogenMod Recovery is still missing critical features but it's better than stock).
You can use CF-Auto-Root to root the device (so simple) at:
https://download.chainfire.eu/774/C...uto-Root-gprimeltecan-gprimeltevl-smg530w.zip
Yup, debloating is good, i wanted to do so at first but I wanted to be done away with KNOX and have an su binary which worked flawlessly for good so I decided to start from scratch.
I've considered starting from M, but that will be a task for later. It is troublesome to start from a fimware above what your device is at when you're porting, because the vendor libraries and binaries you copy might not work in the newer version of Android because of linking errors.
You can copy the binaries fine but obscure errors due to missing references will pop up in the logs which will stop the modules from loading or binaries from running.
I'm having these issues with a build ID that is just a few apart from the one used on the stock ROM - LMY49J on the cm build versus LMY47X on the stock).
My Git repos are above - you can get yourself a cm12.1 source tree, pull my device_ and vendor_ trees, pull proprietary files using the scripts in the vendor tree, build from source and then flash the resultant images to your device.
The G530H ROM might, in theory flash without issue and actually boot, but whether it will be usable is another thing.
The thing that differs between the devices, as far as I'm aware, is mostly the baseband, some other device hardware (e.g the G530W has 1.5GB RAM instead of 1GB as most G530 devices), and the device bootloader. As such, the kernels and modules used might differ slightly in terms of modules compiled in, even though they're built from the same kernel source.
And yes, indeed, I started from a G530 device and vendor tree, though whether it was that one, or perhaps one for the G530FZ, I don't remember (though I think it's the G530FZ, it's the device closest to the G530W).

Finally something for this variant, I've been waiting for ages. Huge thumbs up dude, from a thankful Canadian. I don't use this phone as my daily driver so I'll be flashing this without delay. Mind if I trouble you for the order of operations? I've never used Odin to flash a custom ROM before.

Some more questions ...
Hi again @vince2678, I have more questions:
Do you have a local_manifest.xml that drives your build? ... I have a single-purpose Fedora24 virtual machine which I use to build android ROMs.
Does your build actually produce a CM12.1 zip installation package? ... And do you simply harvest the system.img, etc afterwards to put into a flashable this tar file?
What is the command line that do you use to create the flashable tar files? ... I'm just curious.
What version of the firmware does your device have? ... Mine has G530WVLU1AOFB. Apparently, this is the Tanzanian version! WTF? I purchased my phone from a Costco in Oakville, Ontario, Canada. It was purported to be unlocked for all Canadian carriers. My carrier is Virgin Mobile (owned by Bell) and it works fine. But, my understanding is that device actually locks to your SIM card upon first use so you can't use it for other SIM cards, but I haven't proven this yet. BTW, I got over half of the stock ROM DL'ed from SamMobile before it stopped due to a "network error". Yeah right! I'll try again later.
Have you (or are you) cherry-picking patches from the G530H CM12.1 ROM? ... android_device_samsung_fortuna3g I suggest DL'ing their key files and comparing them to yours. They appear to be in the final exhilarating phase of perfecting their ROM.
So you have totally removed the KNOX software without in deleterious consequences? ... I thought that I read in an XDA thread where somebody did this and then had issues such as connecting to WIFI, etc. It appeared that there may be a dependency in the BIOS.
Did you trip the KNOX e-fuse hence void the warranty? ... Not that I care about the warranty, I only worry about bricking the device.
Unlike @Pbotelho, this is my daily driver so I will be proceeding slowly and cautiously and look forward to his experience flashing it.

Pbotelho said:
Finally something for this variant, I've been waiting for ages. Huge thumbs up dude, from a thankful Canadian. I don't use this phone as my daily driver so I'll be flashing this without delay. Mind if I trouble you for the order of operations? I've never used Odin to flash a custom ROM before.
Click to expand...
Click to collapse
Hi Pbotelho, thanks man. You will have to enable Developer Mode on your phone and unlock the bootloader from the settings. I don't remember what exactly in the settings that option is, but it should be in the Debugging area for sure.
Once done, reboot into Download Mode [Press Power+Volume Down+Home].
Once you've done that, grab the boot.tar, system.tar.xz and recovery.tar from the links above. Extract the system.tar.xz with 7zip or `xz -d system.tar.xz` if under Linux to get a system.tar file, and flash the recovery, boot, and system, one after the other, in whatever order, by booting into download mode as soon as it is done flashing a file.
You will need to wipe your cache and data partitions, which can be done by rebooting into recovery [Power+Volume Up+Home].
The button options are built into the hardware so they can be used at any point after the phone is on.
When all that is done, you can report any problems here [or on the github page] and post logcats and I'll look at them if there's any issue I've missed.

Zippy Dufus said:
Hi again @vince2678, I have more questions:
Do you have a local_manifest.xml that drives your build? ... I have a single-purpose Fedora24 virtual machine which I use to build android ROMs.
Does your build actually produce a CM12.1 zip installation package? ... And do you simply harvest the system.img, etc afterwards to put into a flashable this tar file?
What is the command line that do you use to create the flashable tar files? ... I'm just curious.
What version of the firmware does your device have? ... Mine has G530WVLU1AOFB. Apparently, this is the Tanzanian version! WTF? I purchased my phone from a Costco in Oakville, Ontario, Canada. It was purported to be unlocked for all Canadian carriers. My carrier is Virgin Mobile (owned by Bell) and it works fine. But, my understanding is that device actually locks to your SIM card upon first use so you can't use it for other SIM cards, but I haven't proven this yet. BTW, I got over half of the stock ROM DL'ed from SamMobile before it stopped due to a "network error". Yeah right! I'll try again later.
Have you (or are you) cherry-picking patches from the G530H CM12.1 ROM? ... android_device_samsung_fortuna3g I suggest DL'ing their key files and comparing them to yours. They appear to be in the final exhilarating phase of perfecting their ROM.
So you have totally removed the KNOX software without in deleterious consequences? ... I thought that I read in an XDA thread where somebody did this and then had issues such as connecting to WIFI, etc. It appeared that there may be a dependency in the BIOS.
Did you trip the KNOX e-fuse hence void the warranty? ... Not that I care about the warranty, I only worry about bricking the device.
Unlike @Pbotelho, this is my daily driver so I will be proceeding slowly and cautiously and look forward to his experience flashing it.
Click to expand...
Click to collapse
Hi Zippy,
I do not have a local_manifest, if you want you can just manually pull the device and vendor trees into your build area, or you can make one yourself if you wish.
I will probably make one though, because the build has dependencies on some qcom sources.
I just use 'make -j8' to build everything, though you can use 'make otapackage' to build a flashable zip [You'll need the CMR recovery from here though, the images can't be flashed by stock recovery]
For creating flashable tar files, you can just use `tar`. You don't need to make .md5 verifiable archives, those are just to ensure a download wasn't corrupted [I provide md5sums for checking].
The system.img in the output directory will have to be renamed to 'system.img.ext4' and then archived, as so:
Code:
cd out/target/product/gprimeltecan
ln system.img system.img.ext4
tar cf system.tar system.img.ext4
tar cf boot.tar boot.img
tar cf recovery.tar recovery.img
Then you can move the files wherever and flash them with Odin.
Yes the gprimeltevl/gprimeltecan baseband is indeed G530WVLU1AOFB, though this should work with all G530WXXXXXXXs (not sure how many different ones are out there].
I'm not sure about the SIM locking thing, I cannot confirm this, someone might have to try to check.
I did consider sourcing from that repository, though ultimately i ended up using another one [I don't remember the name]. I might take a look at their source to see what I can do about mine though.
I did trip KNOX, though that was back when I was still trying to root my phone with CF-Root, so I'm not sure if flashing this will trip KNOX. And yes, KNOX is completely gone from this device, with no problems from the phone.

vince2678 said:
Hi Pbotelho, thanks man. You will have to enable Developer Mode on your phone and unlock the bootloader from the settings. I don't remember what exactly in the settings that option is, but it should be in the Debugging area for sure.
Once done, reboot into Download Mode [Press Power+Volume Down+Home].
Once you've done that, grab the boot.tar, system.tar.xz and recovery.tar from the links above. Extract the system.tar.xz with 7zip or `xz -d system.tar.xz` if under Linux to get a system.tar file, and flash the recovery, boot, and system, one after the other, in whatever order, by booting into download mode as soon as it is done flashing a file.
You will need to wipe your cache and data partitions, which can be done by rebooting into recovery [Power+Volume Up+Home].
The button options are built into the hardware so they can be used at any point after the phone is on.
When all that is done, you can report any problems here [or on the github page] and post logcats and I'll look at them if there's any issue I've missed.
Click to expand...
Click to collapse
I got impatient with it so I took a gamble and inferred with some background knowledge. Got it up and running several hours ago. Performance wise, it seems dead on perfect. There's no lag, no force closing of apps. Everything runs as snappy as it should. Its fast as f***. Now I even installed xposed framework and added in a few modules, one of those being the Android N-ify project, and it works really well with it, so kudos on this area. I'll be sure to uninstall xposed when it comes to error reporting and logcats.
The only issues I'm seeing besides the ones you've already outlined are graphical in nature. I'm not home at the moment but I'll upload some logcats when I get the chance.
1) What I'm seeing is a blackout out lock screen. I have a theme installed and used it to apply a custom lock wallpaper to test this out. The wallpaper only shows once you've accessed the Pattern input by swiping up. Haven't tried it with a pin. If you're only using swipe, it'll stay black until unlocked.
2) When unlocked and swiping down to access the notifications panel and quick settings, the same blackout effect is present. This is present only while you're looking at your notifications or tiles, and returns to normal when swiped back up.
3) The first half of this part is only noticed when using the material glass theme. When swiping down to access the notification panel without notifications, the "no notifications" text will be present as it should be, however, when swiped down again to access the quicksettings tiles, the "no notifications" text isn't cleared away. It sits behind the brightness slider. This isn't noticeable on the stock theme because its opaque, while material glass features transparency as their main selling card. If using the battery saver, the text from this persistent notification will appear instead.
Edit: Upon further analysis, it seems that the notification content is linked to the bottom of the header instead of the bottom of the quicksettings tiles, and that's why it works this way. When expanding or shrinking the header, the notification also moves directly with it.
Second half: whether on the stock theme or not, the "no notifications" text will continue to stick and be viewable on the lockscreen, retaining its position that is viewed in the notification panel. It sits directly above the clock. The persistent battery saver notification works the same way. I'm no expert, but I believe that since the notification panel and lockscreen both go to black, that this might be linked in some way.
4) Sometimes when using the stock theme and toggling options in the quick settings tiles, it'll glitch out and turn into what I can only describe as a zombie menu. The pixels of the status bar are replaced by that proportionate area of the quick settings menu, and when swiping down to use the menu, access is disabled (it can't be touched) and it closes itself when attempted. Only way I've been able to fix it was to toggle the theme to material glass and all was restored, still subject to the above three points.
Edit: 5) when using kernel adiutor to try to adjust the CPU frequencies, the only option that comes up for both minimum and maximum is 0MHz. The button seems to work as well, bringing the clock max speed down to 0 for a split second before it reverts to a a maximum of 200MHz. Adjusting the governor after the fact won't restore the maximum, seems only a reboot will get it done. I'm slightly amazed to be honest as before on Touchwiz, it was impossible to get it to hold onto a lower maximum. It would jump all over the place as it pleased.
Edit: 6) The recents hardware button is disabled. Touching it, holding it, nor double tapping brings up a function. It also isn't present in settings when trying to map the button functions. Its the only one that's missing. Power, home, back, and volume are all there.
That's all I got for the moment, I tried to be as descriptive as possible as I won't be able to get the logcats up for awhile. Let me know if you have any questions about what I've said here.
And also, are you taking feature requests?

Pbotelho said:
I got impatient with it so I took a gamble and inferred with some background knowledge. Got it up and running several hours ago. Performance wise, it seems dead on perfect. There's no lag, no force closing of apps. Everything runs as snappy as it should. Its fast as f***. Now I even installed xposed framework and added in a few modules, one of those being the Android N-ify project, and it works really well with it, so kudos on this area. I'll be sure to uninstall xposed when it comes to error reporting and logcats.
The only issues I'm seeing besides the ones you've already outlined are graphical in nature. I'm not home at the moment but I'll upload some logcats when I get the chance.
1) What I'm seeing is a blackout out lock screen. I have a theme installed and used it to apply a custom lock wallpaper to test this out. The wallpaper only shows once you've accessed the Pattern input by swiping up. Haven't tried it with a pin. If you're only using swipe, it'll stay black until unlocked.
2) When unlocked and swiping down to access the notifications panel and quick settings, the same blackout effect is present. This is present only while you're looking at your notifications or tiles, and returns to normal when swiped back up.
3) The first half of this part is only noticed when using the material glass theme. When swiping down to access the notification panel without notifications, the "no notifications" text will be present as it should be, however, when swiped down again to access the quicksettings tiles, the "no notifications" text isn't cleared away. It sits behind the brightness slider. This isn't noticeable on the stock theme because its opaque, while material glass features transparency as their main selling card. If using the battery saver, the text from this persistent notification will appear instead.
Click to expand...
Click to collapse
Hi Pbotelho,
I'll try to answer everything as completely as I can.
The blackout lock screen thing seems to be an issue with Trebuchet. I found that using a different lock screen app solves this issue.
As for the blackout on the notification area, I'm not sure what exactly is causing this, though I think this may be a problem with the cm-12.1 source and not necessarily the device port itself.
Second half: whether on the stock theme or not, the "no notifications" text will continue to stick and be viewable on the lockscreen, retaining its position that is viewed in the notification panel. It sits directly above the clock. The persistent battery saver notification works the same way. I'm no expert, but I believe that since the notification panel and lockscreen both go to black, that this might be linked in some way.
Click to expand...
Click to collapse
This seems to be an issue with Trebuchet again, and using a different lock application fixes this.
Sometimes when using the stock theme and toggling options in the quick settings tiles, it'll glitch out and turn into what I can only describe as a zombie menu. The pixels of the status bar are replaced by that proportionate area of the quick settings menu, and when swiping down to use the menu, access is disabled (it can't be touched) and it closes itself when attempted. Only way I've been able to fix it was to toggle the theme to material glass and all was restored, still subject to the above three points.
Click to expand...
Click to collapse
I'm aware of this one, for now you can fix this by disabling Brightness Control in the settings ( Settings->Status Bar->Brightness Control).
This again might be an issue with the cm-12.1 source, though it'll need some checking to confirm.
Edit: when using kernel adiutor to try to adjust the CPU frequencies, the only option that comes up for both minimum and maximum is 0MHz. The button seems to work as well, bringing the clock max speed down to 0 for a split second before it reverts to a a maximum of 200MHz. Adjusting the governor after the fact won't restore the maximum, seems only a reboot will get it done. I'm slightly amazed to be honest as before on Touchwiz, it was impossible to get it to hold onto a lower maximum. It would jump all over the place as it pleased.
Click to expand...
Click to collapse
I'm using Kernel Adiutor and frequency setting is fine. Did you try using a tunable governor like interactive? That may be the issue.
Edit: 6) The recents hardware button is disabled. Touching it, holding it, nor double tapping brings up a function. It also isn't present in settings when trying to map the button functions. Its the only one that's missing. Power, home, back, and volume are all there.
Click to expand...
Click to collapse
I'm aware of this, you can blame this on my bad arithmetic skills . I had set the wrong bit field mask for the button settings in the device frameworks.
I'll be pushing a fix addressing this shortly.
And also, are you taking feature requests?
Click to expand...
Click to collapse
That depends on what the features are, if they're reasonable and within my capabilities, then yeah .
PS: I would appreciate any help I can get, and if you have any coding skills and time to compile builds, you can help me polish up the device port.
Thanks!

vince2678 said:
Hi Pbotelho,
I'll try to answer everything as completely as I can.
The blackout lock screen thing seems to be an issue with Trebuchet. I found that using a different lock screen app solves this issue.
As for the blackout on the notification area, I'm not sure what exactly is causing this, though I think this may be a problem with the cm-12.1 source and not necessarily the device port itself.
This seems to be an issue with Trebuchet again, and using a different lock application fixes this.
I'm aware of this one, for now you can fix this by disabling Brightness Control in the settings ( Settings->Status Bar->Brightness Control).
This again might be an issue with the cm-12.1 source, though it'll need some checking to confirm.
I'm using Kernel Adiutor and frequency setting is fine. Did you try using a tunable governor like interactive? That may be the issue.
I'm aware of this, you can blame this on my bad arithmetic skills . I had set the wrong bit field mask for the button settings in the device frameworks.
I'll be pushing a fix addressing this shortly.
That depends on what the features are, if they're reasonable and within my capabilities, then yeah .
PS: I would appreciate any help I can get, and if you have any coding skills and time to compile builds, you can help me polish up the device port.
Thanks!
Click to expand...
Click to collapse
1) Aww man I love using Trebuchet, I like to keep my install as small as possible so I'm not one for installing additional apps. I'm a resource junkie though, so its just a matter of personal preference.
2) Again, I'm not an expert, but I suspect it might be the device port. Previously, I've had an unofficial version of CM12.1 installed on a Galaxy Tab 3 as well as a CM12.1 based Pac-rom installed on a Galaxy S4. I'm not sure if this is something those developers corrected on their own or not when building their ROMs, so it could be the source. That's the best of my knowledge on the topic.
3) Will do for the brightness slider, but again, it isn't something I experienced on the other devices with CM12.1 and the sister project.
4) Yeah I played around with the governors and tried all of them. They all list 0MHz as the only option. Maybe its a CPU hotplug issue? I didn't try playing around with those so I'll have to get back to you on that one.
5) Look forward to the update I have a question regarding it though. I'm really familiar with updating custom ROMs through recovery using the zip file format, but this is the first time I'm using Odin to do the job. Will flashing an update with Odin this way cause a factory reset? Or will it update as expected?
6) A couple more graphical hiccups I remembered. The blackout also happens when going to About Phone>Status. In About Phone, the device field says unknown (doesn't bother me, I just don't know if its significant or not), the illumination for the hardware buttons isn't working (I usually keep them off to save battery anyways, but someone out there probably uses it). And finally, when switching recents by holding the home button, only the title bars of the individual apps are viewable. The content of the windows themselves is completely transparent so it looks like a series of floating title bars.
(Apologies if some of these features are already included, I didn't get the opportunity to check, I just think they're awesome)
Feature requests:
1) When phone is off and charging, percentage is displayed inside battery symbol.
2) CPU and GPU undervolting built into the kernel. These custom ROMs are much better than the stock ROM in terms of functionality, but the battery life on the stock Samsung experience is no joke.
3) If possible, more steps for CPU frequency adjustments, every 100MHz or so. I remember the stock ROM had limited options. My S4 is the example I'm going to use here, it has a step for every 108MHz.
4) USB fast charging, aka setting USB to "charge only".
5) Wakelock Blocker. Its built into the latest Resurrection Remix for the S4, not sure if that could be of viable use to you. It'll certainly help out with battery improvements.
6) Boot Manager. Decide which apps get to start at boot. Its built into Marshmallow and an xposed module also exists for this purpose, so really low priority on this one, for me at least.
7) This one is a doozy. Absolutely the one I care most about, but most likely asking for too much. USB tethering. Already exists, I know, but not the way I hope it to. I have an old WRT54G router with DD-WRT installed. My goal is basically this: Phone's network connection>USB Tether>Micro-USB-LAN adapter>WAN port of router. In this sense, the phone would be acting as the modem in a regular home network. I know its possible to do this if the router has a USB port, but mine doesn't, and I also know its possible if you have an intermediate device that bridges the connections for you. Like a laptop, PC, or raspberry pi. Cost efficiency as a student is what I'm working towards though, so this one is a wishlist request.
Ps. The only coding skills I have are from high school's Visual Basic and HTML, truly beginner stuff, and that was about 10 years ago. I'm running Ubuntu on a core i5-2500k with 16GB of RAM and about a terabyte of space though, so compiling is definitely a possibility with some instructions.

Pbotelho said:
5) Look forward to the update I have a question regarding it though. I'm really familiar with updating custom ROMs through recovery using the zip file format, but this is the first time I'm using Odin to do the job. Will flashing an update with Odin this way cause a factory reset? Or will it update as expected?
Click to expand...
Click to collapse
Nope, this should be pretty much the same as flashing a zip from recovery. If you modified the system partition though (like by flashing GApps for example) your changes will be lost.
Pbotelho said:
6) A couple more graphical hiccups I remembered. The blackout also happens when going to About Phone>Status. In About Phone, the device field says unknown (doesn't bother me, I just don't know if its significant or not), the illumination for the hardware buttons isn't working (I usually keep them off to save battery anyways, but someone out there probably uses it). And finally, when switching recents by holding the home button, only the title bars of the individual apps are viewable. The content of the windows themselves is completely transparent so it looks like a series of floating title bars.
Click to expand...
Click to collapse
I fixed this in the device tree, once I've built a new image this should be corrected.
Pbotelho said:
(Apologies if some of these features are already included, I didn't get the opportunity to check, I just think they're awesome)
Feature requests:
1) When phone is off and charging, percentage is displayed inside battery symbol.
Click to expand...
Click to collapse
I'll be looking into this one.
Pbotelho said:
2) CPU and GPU undervolting built into the kernel. These custom ROMs are much better than the stock ROM in terms of functionality, but the battery life on the stock Samsung experience is no joke.
Click to expand...
Click to collapse
I'm still using the stock kernel in my builds, once the builds are stable I'll start compiling the kernel from source and I'll see if I can do something about this.
Pbotelho said:
3) If possible, more steps for CPU frequency adjustments, every 100MHz or so. I remember the stock ROM had limited options. My S4 is the example I'm going to use here, it has a step for every 108MHz.
Click to expand...
Click to collapse
According to the configurations, this is already how it is.
PS: I changed the governor under Kernel Adiutor to performance from interactive and switched back, and became unable to change the frequencies (like you were experiencing). I'll need to play around more with this to see why.
Pbotelho said:
4) USB fast charging, aka setting USB to "charge only".
Click to expand...
Click to collapse
This is already available under the Settings->Storage->USB Computer Connection menu
Pbotelho said:
5) Wakelock Blocker. Its built into the latest Resurrection Remix for the S4, not sure if that could be of viable use to you. It'll certainly help out with battery improvements.
6) Boot Manager. Decide which apps get to start at boot. Its built into Marshmallow and an xposed module also exists for this purpose, so really low priority on this one, for me at least.
Click to expand...
Click to collapse
Not sure I could do this, I'll check.
Pbotelho said:
7) This one is a doozy. Absolutely the one I care most about, but most likely asking for too much. USB tethering. Already exists, I know, but not the way I hope it to. I have an old WRT54G router with DD-WRT installed. My goal is basically this: Phone's network connection>USB Tether>Micro-USB-LAN adapter>WAN port of router. In this sense, the phone would be acting as the modem in a regular home network. I know its possible to do this if the router has a USB port, but mine doesn't, and I also know its possible if you have an intermediate device that bridges the connections for you. Like a laptop, PC, or raspberry pi. Cost efficiency as a student is what I'm working towards though, so this one is a wishlist request.
Click to expand...
Click to collapse
I don't quite understand what you mean by this, how does it differ from the normal USB tethering?
Pbotelho said:
Ps. The only coding skills I have are from high school's Visual Basic and HTML, truly beginner stuff, and that was about 10 years ago. I'm running Ubuntu on a core i5-2500k with 16GB of RAM and about a terabyte of space though, so compiling is definitely a possibility with some instructions.
Click to expand...
Click to collapse
If you can't code, that's fine, you could set up a build environment on your computer for creating images from the source.

vince2678 said:
Nope, this should be pretty much the same as flashing a zip from recovery. If you modified the system partition though (like by flashing GApps for example) your changes will be lost.
I fixed this in the device tree, once I've built a new image this should be corrected.
I'll be looking into this one.
I'm still using the stock kernel in my builds, once the builds are stable I'll start compiling the kernel from source and I'll see if I can do something about this.
According to the configurations, this is already how it is.
PS: I changed the governor under Kernel Adiutor to performance from interactive and switched back, and became unable to change the frequencies (like you were experiencing). I'll need to play around more with this to see why.
This is already available under the Settings->Storage->USB Computer Connection menu
Not sure I could do this, I'll check.
I don't quite understand what you mean by this, how does it differ from the normal USB tethering?
If you can't code, that's fine, you could set up a build environment on your computer for creating images from the source.
Click to expand...
Click to collapse
Sounds awesome, I'll flash it as soon as possible and continue testing it for you.
I uploaded a logcat to the other thread in development. The performance governor is set up as the default for me so I'm set up with that situation from the get go.
It technically isn't different from regular USB tethering, but it seems that no one has done it successfully before. There are adapters that you can use to provide a wired Ethernet connection to an android device over micro USB, but no one has been able to do it the other way around. Google results don't turn up any answers.
And I'm willing to learn how to code, but I fear that I may slow you down with this project as I get past the learning curve. That being said, I can definitely set up a build environment and compile it from source for you. That'll be a learning experience on its own. Just point me towards a noob guide and I'll get it done.

Pbotelho said:
Sounds awesome, I'll flash it as soon as possible and continue testing it for you.
I uploaded a logcat to the other thread in development. The performance governor is set up as the default for me so I'm set up with that situation from the get go.
It technically isn't different from regular USB tethering, but it seems that no one has done it successfully before. There are adapters that you can use to provide a wired Ethernet connection to an android device over micro USB, but no one has been able to do it the other way around. Google results don't turn up any answers.
And I'm willing to learn how to code, but I fear that I may slow you down with this project as I get past the learning curve. That being said, I can definitely set up a build environment and compile it from source for you. That'll be a learning experience on its own. Just point me towards a noob guide and I'll get it done.
Click to expand...
Click to collapse
The USB tethering thing sounds interesting, though I would need to have one of the adapters to test that, and time at hand as well.
As for the build environment, the best source of information is the CM wiki. You can look at these links below on how to get started:
https://wiki.cyanogenmod.org/w/Development#Learning_To_Build_CM
https://wiki.cyanogenmod.org/w/Doc:_Building_Basics
https://docs.omnirom.org/Setting_Up_A_Compile_Environment
https://wiki.cyanogenmod.org/w/Build_for_captivatemtd
http://jira.omnirom.org/browse/OMNI-1263
http://forum.xda-developers.com/showthread.php?t=2329228​
The guides above are just outlines to detail the general build process - you will need to do things slightly differently from the steps above to get the proper source and device trees.
The attached local_manifest can be used with repo when obtaining the cm-12.1 source.
Remember you'll be getting the cm-12.1 source - not anything else.

vince2678 said:
The attached local_manifest can be used with repo when obtaining the cm-12.1 source.
Remember you'll be getting the cm-12.1 source - not anything else.
Click to expand...
Click to collapse
So if I add in your device tree and provide a toolchain, I should be good to go? (I think so.)
Thanks!!
EDIT: Not so fast! I'll have to find a kernel as well.

Pbotelho said:
Edit: 5) when using kernel adiutor to try to adjust the CPU frequencies, the only option that comes up for both minimum and maximum is 0MHz. The button seems to work as well, bringing the clock max speed down to 0 for a split second before it reverts to a a maximum of 200MHz. Adjusting the governor after the fact won't restore the maximum, seems only a reboot will get it done. I'm slightly amazed to be honest as before on Touchwiz, it was impossible to get it to hold onto a lower maximum. It would jump all over the place as it pleased.
Click to expand...
Click to collapse
I've test Kernel Adiutor and I too got the O MHz only window for both as the only option. Though Now I wonder if it is because I used the latest beta Kernel Adiutor, I'll further check with the normal stable version. Pretty sure it'll fix it if it worked normally for Vinc. --- Update; As strange as it might look while re opening kernel adi to take a screenshot, the list of normal MHz values is there and working properly.. Strange.. Magic? Huh technology, you're so unpredictable.

Zippy Dufus said:
So if I add in your device tree and provide a toolchain, I should be good to go? (I think so.)
Thanks!!
EDIT: Not so fast! I'll have to find a kernel as well.
Click to expand...
Click to collapse
Hi Zippy,
The kernel source was included there as well (it's just a dummy source so that the build can get the necessary source files for libraries which need them). The build still uses the default prebuilt kernel though.

vince2678 said:
Hi Zippy,
The kernel source was included there as well (it's just a dummy source so that the build can get the necessary source files for libraries which need them). The build still uses the default prebuilt kernel though.
Click to expand...
Click to collapse
As an experiment, why don't you try downloading the G530H ROM, unzip, take the boot.img, and flash it over top of your stock kernel? See if it boots and how it performs.
Meanwhile, I plan to hack at putting together complete manifest, possibly with the G530H kernel and my Linaro 4.9 toolchain and see if I can build a complete ROM.
Have you extracted the firmware?
However, I don't want to flash anything until I see your ROM's modem working because it is my daily driver. But I'm keen though!!
I've managed to download the stock ROM from SamMobile but I'm now thinking of going straight to your ROM once it is a bit more complete and stable.

Related

Linux on StarTrek: Runs, Needs Work

Hi all,
I've learned that the StarTrek is able to boot the current kernel from the Linwizard project without any modifications. I've posted a video of this at http://vimeo.com/2114567. Before you get too excited, however, there's a few things to keep in mind:
The buttons aren't mapped correctly by default.
You need a networked computer to log in and do anything fun, for now.
If you're wondering about Android, the answer is "not yet".
I will do my best to address the important things here; what works, what needs tweaks to work, and (most of all) what needs attention. I will also, over the next day or two, try to post my findings regarding the button GPIOs collected from HaRET, kernel modifications necessary to fix a few things. etc.
Consider this post a call for help. I'm hoping this will encourage others to contribute toward more complete linux support on the phone. I personally am driven by the opportunity to dual-boot Android on the device, but I have much to learn and can't do this alone. So, if you have kernel experience and a StarTrek, here's your motivation to get hacking! (If you'd like to help, but don't have a device to test kernels on, I'm often in #xda-devs.)
Status (Let me know if there's anything missing here.)
Internal LCD - YES - Seems to work great.
External LCD - ? - Shows the device's default image. Not sure how to control this in linux.
Backlight - ? - Unsure. As far as I can tell, Linux will retain the brightness level being used when HaRET finished loading the kernel.
USB Networking - YES - Works like a charm.
Audio - ? - No idea. I don't know how to test this.
Cellular - ? - No idea, but I don't think it will necessarily come easily.
Buttons/Keypad - SOME - By default, the keys and buttons are mapped either incorrectly or not at all. The phone keypad and some of the special buttons type random keystrokes, since we are using the mappings for the Wizard. I have a modified board-htcwizard.c with correct mappings for the StarTrek I'll post really soon, as well as a list of the GPIO readings for many of the buttons. Unfortunately, the Up/Down/Left/Right/Select/End buttons function differently than the other, matrix-based keys. I have yet to discover how to configure them.
Camera - ? - No idea, but they don't even have this working on the Wizard (Linwizard's primary target device).
Light Sensor - ? - I wouldn't know where to begin. It barely works in WM, anyway.
MicroSD - YES - I can mount the MicroSD with no issues, full read/write. Even managed to open my photos in the GPE photo gallery on the device (launched over telnet).
X[\B] - YES - I am able to start X, by calling startx over the telnet connection. However, X will try to run a touch screen calibration before doing anything else, and this is a bit of a problem for us! Fortunately, on newer Linwizard versions, you can disable this by passing tslib=0 to the kernel (in the defaults.txt file you give to HaRET). GPE also seems to be running perfectly after X starts.
Problems - After a few idle minutes in linux, the screen likes to black itself out automatically, as per the design of Linwizard. Unfortunately, on the Star Trek, there seems to be no way to make the screen wake up. Telnet still works in this situation.
I promise to keep this post updated, and get my data together and uploaded soon. Please share your own results and tricks as they come along, and join me (and some talented people) in #xda-xevs and #htc-linux on irc.freenode.net. Happy hacking!
Attached:
arch/arm/mach-omap1/board-htcwizard.c - Contains key matrix mappings modified for StarTrek. Be sure to remove the ".txt" from the file extension before using.
default.txt - Used with HaRET to make Linux boot. The only thing unusual in here is the TSLIB=0 option that's passed to the kernel, telling linux to skip touchscreen-related tasks.
great work! but you need some advanced startrek owners to test linux - that's a big problem
Fantastic news! I' would really try it out. Unfortunatly my startrek's connector is damaged. I can charge the device, but I cannot connect with the pc. If I can use the micro sd card to install it(I think is possible) I will try it.
Thanks for the great job.
dancer_69 said:
Fantastic news! I' would really try it out. Unfortunatly my startrek's connector is damaged. I can charge the device, but I cannot connect with the pc. If I can use the micro sd card to install it(I think is possible) I will try it.
Thanks for the great job.
Click to expand...
Click to collapse
You can, by dropping Haret+default.txt+zImage+initrd onto the SD card. Unfortunately, without a USB connection, you won't be able to telnet into the device and run commands.
very interesting! Ive been waiting to hear this kind of news Unfortunately, I still use my StarTrek as my primary phone, so I can't test it out until it moves along a little further. I'll be sure to keep an eye on this thread, as this is good news!
gigawatts said:
very interesting! Ive been waiting to hear this kind of news Unfortunately, I still use my StarTrek as my primary phone, so I can't test it out until it moves along a little further. I'll be sure to keep an eye on this thread, as this is good news!
Click to expand...
Click to collapse
Linux actually boots directly from a Windows Mobile program called HaRET; When you're done playing with Linux, you can just reset the phone and you're back to normal. No permanent changes.
awesome! I'll give it a go right now, thanks!
BHSPitMonkey said:
You can, by dropping Haret+default.txt+zImage+initrd onto the SD card. Unfortunately, without a USB connection, you won't be able to telnet into the device and run commands.
Click to expand...
Click to collapse
I already did it, and works. Thanks anyway.
Why not combine the effort to get Android on it?
Kwen said:
Why not combine the effort to get Android on it?
Click to expand...
Click to collapse
Are you volunteering your expertise on the subject?
The point of this post was to accomplish just that: to attract the interest of more people who can contribute. I'm in the process of setting up a repository of changes right now, so the patches I've made so far are kind of scattered about my hard drive for the moment. If you're interested, you can try catch me in #htc-linux or #xda-devs on irc.freenode.com. Otherwise, I'm trying to keep the post at the top of this thread up-to-date.
Unfortunatly Android cant work, it needs 128 ram.
http://source.android.com/release-features
BHSPitMonkey said:
Cellular - ? - No idea, but I don't think it will necessarily come easily.
Click to expand...
Click to collapse
from linwizard wiki page :
What we need
Right now we need people with experience with GSM and WiFI to help get linwizard connectivity up!
Click to expand...
Click to collapse
about two years ago , another linux project ran that called Xanadux. why you don't use from Xanadux ?
sorry for my english !
I have linux booting
it up booting to the point correctly then sit conclusion cannot one yet start?
sorry for my bad english my german are better
Oh.......I think HTC Phone can do that ADIDAS ' AD "impossible is nothing"
Been a few months since ive been on the scene, any news here? My Cingular 3125 is nearing the end of its life, and I figured I can play a bit more with it
P.S. Whats new BHSP?
autologin on linwizard
hi
http://wlcrck.wl.funpic.org/wlcrck-elf-linux/autologin
to solve the problem i develop a simple aplication to automatic login but dont have any security autologin in root mode
to use this have to make a couple of things
you need decompress the inirtd and add this app to /bin and set suid and modify
/etc/inittab file and compress the initrd again.
change this line
tty1::respawn:/sbin/getty 38400 tty1
for
tty1::respawn:/sbin/getty -l /bin/autlogin 38400 tty1
sorry for my english
thanks for the code of htc board

[UPDATED][BUILD][21.09.2010][mattc EvoLeo v1.0.1][Kernel: 2.6.32.15 #5]

mattc's EvoLeo v1.0
Note: 1.0.1 is the same as 1.0 except using older kernel to prevent blue screens and other startup issues.
This is a brand new build. I have based it on the official HTC EVO rom and tweaked it for the HD2. The rootfs will create a 1GB data image.
The EVO base is friendlier to the non-trackball phones.
Important note: after booting Haret you will notice strange lines on the screen. This is normal, be patient and it will boot. Also, you will probably need to manually enter your APN information for MMS/Mobile Data to work.
Instructions on APN settings:
1. Settings > Wireless & Networks > Mobile Networks > Access Point Names
2. Push 'Windows' button, choose 'New APN'
3. Enter all relevant information for your specific provider, you can likely google it.
4. When everything is entered, push 'Windows' key again, then 'Save'.
5. Push on the radius button next to the new APN you created, it should turn green.
What's Added that you won't get in my other build:
EVO keyboard with directional buttons
Proper HTC camera interface with working previews
Additional downloadable sense Widgets are working
Ringtones, notifications, etc. work without additional media folder (no more ringtones with your music!!)
What is working:
Louder sound over speakerphone and headset
Very stable and fast internet over PPP. Hard freezes are completely eliminated
Light sensor
Touchscreen/Gsensor Freezes Eliminated
Bluetooth Streaming Media/Phone
Wifi
Wifi/USB tethering
USB transfers
EDGE/3G/HSDPA Internet
Camera (flash is buggy)
Standard Definition Camcorder w/flash
LED Keypad Lights and Charging Indicator
No more green line in HQ YouTube
All other items working on other builds, too many to list
Known Issues:
The camera flash is premature causing dark photos in low light
You may need to enter a manual DNS address when using WIFI tethering
There are menu items for 4G. The hardware doesn't support 4G, they will fail.
Notification led is flaky, works at times, not at others. Don't rely on it.
Tips:
Use SetCPU for better battery life.
Turn off live wallpaper for better performance and battery life.
I have included a Task Manager. Learn to use it religiously to improve battery life.
Other Notes:
CPU scaling is enable by default without SetCPU. This kernel cannot be overclocked.
I have included Astro File Manager as well as a Task Killer.
Installation Instructions:
Unzip the contents to your SD card. All of the files should extract into a folder named "Android".
Use an autoloader or, in Windows Mobile, browse to the Android folder on your SD card and run CLRCAD.exe, then Haret.exe.
Let Android boot. The first boot is always the longest and larger data sizes require longer times.
Enjoy Android.
DOWNLOADS: http://www.multiupload.com/2OG2HRRB8S
V1.0.1
If you don't have any ringtones or notifications, download this: http://www.megaupload.com/?d=ZZBUXPK2
Unzip it into your Android folder.
Kernel Sources (note: nothing below is required for you to run Android. Everything listed here is already included in the download).
The latest kernels and modules can always be found here: http://oe.netripper.com/files/htcleo_autobuild_evo_tree/
The autobuild dated 20.9 was used in this build.
Thanks to all of the devs working on kernel - Cotulla, dcordes, gauner1986, markinus, ElBartoME, etc. Also, thanks to Darkstone, Cass, and many others for their great support.
Also, thanks to all the folks on #htc-linux and #htc-linux-chat!
As always, donations are appreciated but not required.
Reserved for change log...
Thanks for ur effort, downloading now!
and time to get a new rom =)
Awesome!!!
Can't wait to try this!!
Thanks, trying this build out and will report back
been waiting for this for 20 days thanks man, you rock!
Iguess I'm the first to download and comment.luv your work
Sent from my Desire HD using XDA App
thx u i think ur bulid is stablest
edit 21.9.10
Quadrant score - 1350 after few tweaks
stablest i ever see so far
battery - 1.5%ph screen off [4 hours test] setcpu profile
very responsive no lags [ changing between apps + load cpu nothing stop it ]
thank you will try when get home. Finally Light Sensor <--have been waited for long time.
dlding hope it works as good as hd build... or better
Thanks a lot... downloading now!
Touchscreen/Gsensor Freezes Eliminated
Click to expand...
Click to collapse
I require a dose of this instantly, just for that 1 point alone
Thank you very much for you efforts
Battery
Is there Extended battery support. Didn't say there was so assuming no.
And if I use michy R11 will I lose other features?
BTW MattC has alot of manfection friends around here. Great Builds!
Jwatt0918 said:
Is there Extended battery support. Didn't say there was so assuming no.
And if I use michy R11 will I lose other features?
BTW MattC has alot of manfection friends around here. Great Builds!
Click to expand...
Click to collapse
The kernel is from GIT so no ext batteries. Michy's EVO kernel should work, not sure about the Desire kernel though.
Thank you so much.I'll trying your build out this week and response result.
Thanks again your hard working.
Forgot to note, you will need to enter APN info manually for MMS/Mobile data to work. Sorry for the inconvenience
getting a blue screen on boot up, is this normal for the build?
you said
"You may need to enter a manual DNS address when using WIFI tethering"
Where do you enter this DNS? and what dns numbers to put in?
caliente said:
getting a blue screen on boot up, is this normal for the build?
Click to expand...
Click to collapse
Oh yeah, it is. Keep trying, it will boot.

[REF][3/31/11] GizmoDroid Braindump or "Ideas for a Fascinating Tomorrow"

Topics Covered in this Thread So Far (or "potential areas for investigation/improvement")
USB modes confusion, CD-ROM mounting bug, and how to make it useful
Hunting for buried treasure in system apk's
EFS backups
GPS
Wifi
Stuff About CDROM/USB Device Protocols
More Stuff About CDROM/USB Device Protocols
Stuff On EFS
Stuff On Hidden Options
GPS power toggle from Drop Down Menu
EVRC-B Phone Voice Codec
Background Noise Cancellation during call
Disabling of debugging stuff and additional code checking
PNG/ogg optimization and Zipaligning
libdvm.so Optimization
Battery Service Polling
RAM management
Disk Scheduler
A more complete nandroid solution
A better voodoo implementation
About scripting
Sleep of Death
Phone.apk mods
More EFS partition info
Info about other partition backups (backing up kernel and others)
Wakelocks/Timekeeping issues and fixing it at the kernel level
Partition mounting tweaks (noatime and such), power management, vm writeback time
More VM tweaks
SD card cache tweak
Reclaiming the Preinstall partition
So I'm going to be out of town for a week or so, and I know that with hacking, that means I could come back and nothing will have changed... or I could come back and everything will have changed (source, anyone?)
EDIT: I'm back... and everyone got thunderbolts! I swear, I leave for one week...
Unfortunately, I myself am a jack-of-all-trades (king of none, sadly), so I've got about 50 different little things I've been working on researching, and won't make much progress on if I keep on trying to do them all at once, since every single project requires that I learn an entirely new set of principles that I never knew about before. Because of this, I have decided to do a brain dump. Hopefully this is welcomed. Some of it will be stuff you already know, some will be dead leads that don't apply, but I hope that there are some nuggets of goodness that will inspire someone to investigate further.
Basically, I go hunting for things that catch my eye, and mark them to investigate later. Unfortunately, later on, I can't find it, so I have to find it again. Therefore, I'll try to present the most I can re-find about a given topic. Also, my memory is very shoddy, so beware of inaccuracies. I am not stating this as a gospel truth, but as a jump off point to maybe catch your interest to go investigate something further. I welcome any discussion, but if you take an idea and make it your own, feel free to start a new thread about it.
Part I:
USB modes confusion, CD-ROM mounting bug, and how to make it useful
Samsung integrates several different USB devices into that one little plug. I count the following:
1. UMS - Mass Storage Mode (looks like a jump drive)
2. MTP - For use with media players to transfer music/videos/pics (looks like a media player)
3. CDFS - Mounts an image onto a virtual device (looks like CD-ROM drive)
4. DUN - Used for Dial-up-networking (looks like a modem)
5. COM port - Used for programming using low level tools like QPST (looks like a serial port)
6. ADB bridge - communicate over adb to the phones through a terminal
With the possibility of TV-out over usb, USB On The Go, or USB Host, then there are probably more.
There is a lot of weirdities that happen because there are different parts of the phone that activates different "modes" which are usually a combination of the above. Try rebooting into CWM and then select to mount the USB. Depending on your set up, you will probably find your SD-drive mounted to the virtual CD-ROM device. Is it the kernel or recovery that's not set to the right usb mode? I don't know.
There are so many different areas that can change the USB device, so it can be confusing to know why you are seeing a certain thing, even though you have it set as something else from the menu. Just a few examples: In the Settings, you have Debugging, which will turn on UMS, CDFS and the ADB. Depending on what Settings.apk you use, there is an accessible Dial-up networking option to enable the modem. There are dialer codes that affect the enabled devices(**usbii which accesses the PhoneUtil.apk, **debug which allows you to change the port map, and toggle DUN). There is a persistent ADB property that can be stored in "/data/property/persist.service.adb.enable". There are system settings that can be added to the .prop files that load on boot, or set by "setprop somepropertyhere" using a terminal or script.
Have you ever plugged in your phone and gotten an autorun prompt that says something about verizon? On the stock roms, there is an ISO that is stored at "/system/etc/verizon_i500.iso". It contains the samsung usb drivers and a couple other things. When it works properly, this would let you install everything you need to get your phone connected to a new computer, without going through the hassle of finding the files. This is especially helpful if you only have internet access through your phone and cannot obtain the drivers elsewhere. All this seems to be handled by the kies service manager, which does really weird quirky things. For instance, you can manually mount the iso onto this virtual cd-rom device, but kies will unmount it after 15 seconds or so. This is why sometimes, if your sdcard gets mounted as a cd-rom, you can actually read the contents for a little while before it disappears.
Why does this matter to anyone? Well for one thing, it explains a lot of the bugs. There are so many different devices, that sometimes they get mixed up in scripts. This is especially true when porting from other software, or mixing and matching kernels and OS's and recoveries. If they aren't all in agreement, weird things will happen.
Secondly, it opens up a cool built in feature that could easily be utilized: emulated cd-rom drives! I haven't isolated the properties (but it doesn't seem too hard to figure out using the logs and such), but I have successfully mounted the memtest boot iso to the virtual CD-rom drive. Think about it: you have a 16gb sdcard in there. Throw on a live-linux iso, and if the computer was made in the last 5-10 years, it should be able to boot from it (not tested yet).
Right now, you can quickly verify this works by making a symlink from /system/etc/verizon_i500.iso to the iso on your sd card. Then, if you know how, enable the virtual cd-rom (I can't remember the exact variable but its as easy as "setprop cdfs.something enable"). There you go! Instant Virtual CD-ROM drive. You can use it to install stuff on your netbook that didn't come with one, or turn your local library PC into a hacking command center (that's a joke... don't do that).
Now obviously, this could be easily packaged up into a neat little apk that would enable the right USB mode, and then allow you to pick the ISO you want to mount. This would be the ultimate goal, not this dirty little demo. Even easier to implement would be to call it from a script, using a script shortcut program.
Part II
Hunting for buried treasure
There are a lot of things hidden in the OS. Almost all of the APK's, if decompiled, have things that are hidden. Sometimes, the full code is there, but the ability to access it has been removed. To make it visible, you may only need to add the info to the layout xml, or remove a line of smali code (look for things like "removePreference" and such).
Other times, it's just a stub of the information. The great thing is, there are so many variations of our phone, almost anything missing can be inserted again if you can find it another device's code. Sometimes, this is a huge pain, because the dependencies can be spread over multiple files, requiring quite a bit of persistence and dedication. Other times, it's as simple as copy and pasting a line, or an entire method.
The i9000, Mesmerize, Captivate and Vibrant seem to have lots of our missing goodies, but a lot of them need to have the code adjusted, and I don't know what to work on first, since some of the easy stuff is worthless, and some of the valuable stuff is impossible. Here are just a few of the screen shots I've taken (yes, I realize a lot of them are probably not portable, but just showing you how much stuff can be hidden in an APK):
http://www.dropbox.com/gallery/22143517/1/Settings?h=7cc415
There are a lot of little APK's that can only be accessed by dialer codes or through a shortcut program. The useful features sometimes are very small and could either be hacked into the main Settings.apk, or called from it, or added into SpareParts.apk. There are a lot of dangerous things in there ("You want me to format your phone and your SD card?" "Nnnn-" "FORMATTIN YO SDCARD YEAAAAAY") so be careful exploring.
Which brings me to another big issue: EFS backups.
One night, before going to bed, I was poking around in a hidden menu (yep). I don't remember actually changing anything, but I lost a setting. Of course, I have no idea what the correct settings are, so I didn't know what to look for, and for 12 hours straight, my data connection would connect and disconnect every minute. I learned a lot about how poorly the os/radio/kernel/something handles the data connection, but I also learned about the EFS partition, and how this could have easily been fixed if I had a backup, and also how it could have been much, much worse.
If you wander through the i9000 forums, there are multiple warnings to backup your efs folder before messing with any settings. If you corrupt certain files, your phone will lose the ability to regenerate its EFS data, and you will lose your IMEI number. Meaning, your phone will not be activate-able. Meaning, your phone will have to be shipped to Samsung to get it fixed, so... good luck with that. If you think you are smart enough to avoid this, if I remember right, supercurio lost a device to this while trying to figure out the secret audio settings stuff.
It's simple to backup the entire partition using your favorite terminal command (I used dd to copy the efs dev/block device to the sdcard, don't know if this is the best method or not). However, it is virtually impossible to get it back once it is gone, if you don't have a backup. (There is someone charging for this service for i9000 phones).
My theory is that i9000's being used on different carriers causes lots of more people to play around with the EFS data, causing more people to corrupt it. Since the Fascinate is mostly only getting used on Verizon, then there aren't as many cases. However, one mistake in a mounting script in a recovery/kernel/os, and you're toast. Not only that, if you have a working backup and you go messing with the radio settings, then you will always have a backup that doesn't require you to activate another phone and then reactivate your's in order to get your phone working again. (All the while, watching in horror as your logcat fills with a continuous stream of data connection failures).
This is something I'd love to hear more from by someone who knows about it, and if it's as valid of a concern as it is on the i9000, then I'd really like to see more publicity about it's importance.
Part III
Is supposed to be about GPS and wifi, but dang, that is a crazy amount of stuff to write. I hope that a little bit of info, along with a link dump will be okay. And to be honest, I'm getting tired of typing now. I keep thinking of more stuff, but I haven't even fully fleshed out what I've posted so far. Hopefully, I'll be able to do some more later (and even more hopefully, there comes some good from it).
GPS
Most promising is the Captivate GPS work. This thread is a little bit old, but it contains good info. There might be newer information available as well:
http://forum.xda-developers.com/showthread.php?t=881941
The i9000 GPS dev has some good posts as well, explaining it very well. Again, there might be newer information, but this is what I have bookmarked:
http://forum.xda-developers.com/showthread.php?t=842694
It talks about using the "LbsTestMode.apk" for testing. I have no idea if it works for actually configuring the files (I was told it doesn't), but I am providing it here for the possible testing it can do:
LbsTestMode.apk
http://dl.dropbox.com/u/22143517/Android/LbsTestMode.apk
This is just a quick (and not very entertaining) video of setting up a shortcut to access it instead of using a dialer code, then running through the menus real quick so you can see what is available.
http://dl.dropbox.com/u/22143517/Android/lbstestmodedemo.mp4
From a cold boot, in google maps, I can get a lock down to 2 meters in 3-5 seconds with wifi off and GPS standalone enabled when I'm outside. Inside, usually 10-20 meters at first, then drops to 5 after a few more seconds. So I don't know if it's something I've done, or if I just got lucky with a good chip, but I have a hard time testing GPS fixes because I don't have problems (but things can always be better, right?)
I highly recommend checking into the app "GPS aids" if you like the idea of assisted gps. I find that AGPS hinders my GPS performance, but after using GPS aids, it's about as good as normal. So for someone with bad standalone GPS performance, maybe it would help them out using AGPS.
Wifi
Oh boy... I don't know where to start with this. It completely ignores the system property wifi.supplicant_scan_interval. There are files spread across /system and /data that relate to wifi. The binary 'wpa_supplicant' is a source of hackery on other systems, but I don't know if anyone has attacked it on the Fascinate side of things. Want to see ad-hoc networks? This is the file that they usually hack to do that. Other devices have hacked the ability to enable infrastructure mode for wifi tethering. I don't know if this has been done yet for SF.
There are a lot of hidden wifi, wps, and tethering options in the Settings menu. Several system settings properties relating to wifi, several .conf files for the messing, wlan services for the playing, and a nice engineering mode when calling WlanTest.apk that says it's loading a different driver (I can't remember what all neat stuff is in that).
Stuff About CDROM/USB Device Protocols:
My thoughts exactly, the cdrom driver is useful, maybe more so.
The issue as to what starts when is configurable, Eclair had a hard limit of 2 usb modes at any given time, if I recall correctly Froyo supports 4 and that maybe a hard limit by the device. So what is running has to be carefully chosen, with mtp, virtcd, virtcom, ums, adb, acm, usb-otg, tvout, wired tether you hit 4 quick. This is an issue on my table but of low prority, as without a fully working kernel these amenities become mute.
I intend to make the cdrom driver configurable to select various isos from sd and switchable on command, I feel it would be more useful in that state, and I plan to give the user more control over what usb modes are selected using a sysfs setup, the defaults are in about 6 profiles that barely cover my needs without slowing me down.
Edit, More Stuff About CDROM/USB Device Protocols:
I have never tried to get all of the devices working simultaneously, but I do know that if you enable the virtual com port for EFS editing that DUN support is disabled, and that if you enable UMS(USB MassStorage)/SDcard that UMS/VirtCD is disabled, and if you enable UMS/VirtCD that UMS/SDcard is disabled, and I don't use MTP (think syncing your music from WindowsMediaPlayer to Android) so I'm not 100% sure about this one, but I think MTP is disabled if ADB is enabled. At least this is how stock is anyway.
Stuff On EFS:
The I9000 EFS stuff is a little out of my department, but I would love the ability to edit EFS reliably within the OS, unfortunately unlike with the I9000 our devices do not mount an EFS partition, and I have not ventured to attempt looking for it. I imagine it would be just as easy for us to edit it in device as it is for the I9000 people, however if it is due to the way the radios are handled this may not happen, as we are still trying to figure out where the Fascinate keeps it's modem, it would make sense that the EFS partition and the modem code would rest in the same area or partition, if we could only for certain identify it. I think the FSR and FSR_STL drivers obscure our view of it, no fear, I will be attempting to import Gingerbreads MTD work into the my WIP Froyo to hopefully solve this issue once I get the radio working reliably. If and once we do have access to EFS, we could technically copy and replace or edit our Verizon EFS information live, flash from one network to another, and update tower information possibly without even restarting the phone....that is IF we have access to the EFS partition, and logic says we should have access to it ( as every other CDMA Verizon and Alltel device I have used does have one ) and it is programmable from within the Samsung device setup APKs.
Stuff On Hidden Options:
As for the special hidden stuff....it just boggles my mind the amount of crap they hide (or did they forget about this stuff?!?) from us, most of it doesn't work, most of it has no warnings for the DANGEROUS stuff it can do without prompting for a confirmation (ie complete factory reset and yes sdcard formatting) I think this crap should have been jammed into a single engineering menu accessible via a fixed passcode rather than scattered from A to Z in 20 different APKs with little more indicator of what an option does than some cryptic function name and a report of what someone else may have experienced only after executing the command. At the very best it's an unorganized, inefficient, undocumented, unreliable, low level, factory device configuration menu set that even most experts do not know how to fully utilize.
SirGatez said:
My thoughts exactly, the cdrom driver is useful, maybe more so.
The issue as to what starts when is configurable, Eclair had a hard limit of 2 usb modes at any given time, if I recall correctly Froyo supports 4 and that maybe a hard limit by the device. So what is running has to be carefully chosen, with mtp, virtcd, virtcom, ums, adb, acm, usb-otg, tvout, wired tether you hit 4 quick. This is an issue on my table but of low prority, as without a fully working kernel these amenities become mute.
I intend to make the cdrom driver configurable to select various isos from sd and switchable on command, I feel it would be more useful in that state, and I plan to give the user more control over what usb modes are selected using a sysfs setup, the defaults are in about 6 profiles that barely cover my needs without slowing me down.
Click to expand...
Click to collapse
Glad to see you in here, as I think the whole issue is very much best implemented/fixed from the kernel with the OS just facilitating from there. Also interesting that someone else was thinking about this while I was. With the little amount of knowledge I have, trying to hack around the different usb profiles at the OS layer is a pain. ("let me mount this" "NO, STOP IT!" "come onnnn let me turn that on")
I know I personally have had UMS, CDFS, DUN, Serial, and ADB all showing up in windows device manager at the same time, by manually toggling them on. That was as far as my test went, so I have no idea if they were accessible at the same time. But it's interesting to watch the device ids change as it switches modes. I have very little driver knowledge, so actually doing much digging was over my head.
Ok, I think I'm done for the night. Sorry for the quality of info, I'll try to work on it more sometime soon.
I feel like we are all just holding our breath for froyo source, but a lot of profitable work can be done in the meantime. Really, a lot has already been done that we can just kang from other devices. We just need to look outward at our foreign cousins.
For instance, supercurio did a lot of work on hacking the sound before they had kernel access. Using his methods from back then might give us some improvements in the meantime.
Things like GPS and Wifi will probably continue to be an issue even after we have source, so they can be done without fear of being completely forgotten about as soon as source drops.
Lots of mods and tweaks that are widespread across other devices don't seem to be discussed. Build.prop hacks are cheap and easy things that don't get much action around here (though not all of them are applicable/or even helpful). Someone brought up the FuguTweaks thing the other day from the Captivate forum. More of these cross-device discussions would be awesome.
God, my brain just exploded.
This is actually quite interesting, though. Now, on Part II: certain Sammy .apk's have hidden usage? Could we combine that into a massive super-settings app?
Samsung Fascinate, Verizon
EB01 Superclean 2.4
Kenesis' TransMyst GBKB (EPIIIIIC)
Mob87's Honeycomb Theme
Stock Kernel
obsidianchao said:
God, my brain just exploded.
This is actually quite interesting, though. Now, on Part II: certain Sammy .apk's have hidden usage? Could we combine that into a massive super-settings app?
Click to expand...
Click to collapse
That's the idea. CM has a lot of this kind of thing, but we aren't there yet. There are also a bunch of testing apks that I didn't mention built right into the stock ROM.
There are even some super mega apps (some available on the market) that are somewhat compatible (be careful with these, especially for low level stuff). "Sysinfo" reveals a lot of... system info that you normally have to go digging around for. So does "Under the Hood". "Tuxility" doesn't really have much, but could be an easy start for the basis of a SF compatible utility. "SuperPower" gives a lot of control over power options. "SpareParts" from other Galaxy variants have had lots of options added. There are some other SGS specific tools that half work, as well, but their names are slipping me now. One allows you to flash a kernel from the OS. Also, I wonder if Development.apk from the emulator might have some use?
There are tons of things that could easily be added to the SpareParts app too, if you didn't want to add it to the Settings app.
So much stuff to kang.... so little time.
Dude. This is... amazing. Can you mentor me on this stuff? XD
Now, Spare Parts is that app in SC that shows the battery info and stuff, no?
Edit: and what all could you drag to spare parts? Could it access those hidden .apk's and utilize the secret functions?
This is so cool.
Samsung Fascinate, Verizon
EB01 Superclean 2.4
Kenesis' TransMyst GBKB (EPIIIIIC)
Mob87's Honeycomb Theme
Stock Kernel
Part 4
GPS power toggle from Drop Down Menu
The GPS option from the drop down menu is essentially broken and needs to be fixed. I recall a similar problem on a different device with the wifi. With that device, on observation, I noted that on powering up wifi from the settings menu, I would be connected within 5 seconds, but from the power widget, it would take a full minute. After doing some investigating, the power widget was basically trying to control the wifi device directly. I found a different widget that essentially emulated the same method used in the system settings menu, and it starting connecting immediately. My guess is that the GPS power code on the pull down menu could be modified using the same examination/modification needs to be adapted in the same way.
EVRC-B Phone Voice Codec
Switching to the EVRC-B codec improves call quality substantially, for both parties of the call. If anyone knows of a way to set it that doesn't involve going into service mode and manually changing it, then please let me know.
Background Noise Cancellation during call
Also, I'd love to find a fix for the mic during calling. It's a frequent occurrence for the person I'm calling to be like "Who are you talking to?" because they hear someone talking in the next room away from me. Or a very light sound on my end, elicits a response of "WHAT IS THAT NOOOISSSE??!" from the person I'm talking to. So obviously an issue of background noise cancellation. I'm hoping its a software fixable problem.
I've seen this build.prop edit to mess with the noise cancellation for disabling noise reduction for the voice recorder (Say you are trying to record something like music, or something at a concert, the noise filter would hinder your ability).
Code:
media.a1026.nsForVoiceRec=0
media.a1026.enableA1026=1
Two things about this:
1. I've only seen this kind of property on other devices that have two mics that work in combination for noise cancellation. I'm guessing the SF only has one, and any attempted noise cancellation is done at the hardware level or in software.
2. This would assume that the noise shield actually exists, but the stock Fascinate behavior is to not have it enabled for calling... which is pretty dumb. Given some of their other decisions, this may be true, but I have my doubts. If it's parameters are accessible, and it's merely only needing some tweaking, then I will be happy.
I wonder if supercurio knows much about the noise cancellation, since he's worked with so much of the sound stuff?
Disabling of debugging stuff and additional code checking
Debugging stuff is essential for figuring out problems, but for the 99% of the time, isn't it probably slowing us down? I don't know what would be the best way to easily disable any additional debugging routines that might be affect performance.
As for disabling code checking, I used to run these build.prop edits on an older device. I have no idea if they still apply:
Code:
ro.kernel.android.checkjni=0
dalvik.vm.checkjni=0
dalvik.vm.verify-bytecode=false
Maybe you are the kind of person that needs their phone fully stable at all times (no you're not, because you are on a forum that is made to push your device to the limits). I, however, keep everything backed up, so if disabling this extra "security" might slightly increase risk of data loss, then I'm okay with that (not saying that this is an actual danger, but just in general). The only problem I have is if the increase is negated by a large rise in errors that actually hinder performance, or if it becomes significantly more risky (doubt that's the case, but it's always a possibility).
Somewhat related, we currently keep the dalvik heapsize at 48mb's. Is this the best match for our device, or just the default?
PNG/ogg optimization and Zipaligning
I recently took a superclean rom, and dropped 16MB losslessly just from throwing the pngs through PNGOUTWIN and deflopt (didn't touch the *.9.png files). Free RAM right there. Not to mention that some of those APK's have ridiculous extra resources that can be reduced by cutting color depth or taken out entirely (giant HTML based tutorial files stored in the apk... why?) Also, all of the ogg files can be slammed down using a sox script or an equivalent.
In compression, it's also important to know when its a free and harmless, or when it will reduce stability. You can zip up an APK nice and tight... but aapt is a better method. The files might be bigger, but they will run better (also, learn how to treat *.9.png files, or don't touch them at all).
I've adapted the script from Bugless pete's automatic, on-phone zipaligning utility (just had to change a couple lines). A lot of times there are apk's that slip through the cracks in the ROM's that aren't zipaligned (especially in themes and patches). Again, just free performance that isn't hard to obtain.
libdvm.so Optimization
Has our libdvm.so been optimized to run on on our processor? I know this was a huge boon for older devices, but couldn't find any info on ours.
Battery Service Polling
Ever watched the logcat even when your device is nearly at idle? Ya... that battery is always updating. How do we change this habit? I often wonder how much extra juice would we gain by increasing the length in between battery polls.
GizmoDroid said:
Ok, I think I'm done for the night. Sorry for the quality of info, I'll try to work on it more sometime soon.
I feel like we are all just holding our breath for froyo source, but a lot of profitable work can be done in the meantime. Really, a lot has already been done that we can just kang from other devices. We just need to look outward at our foreign cousins.
For instance, supercurio did a lot of work on hacking the sound before they had kernel access. Using his methods from back then might give us some improvements in the meantime.
Things like GPS and Wifi will probably continue to be an issue even after we have source, so they can be done without fear of being completely forgotten about as soon as source drops.
Lots of mods and tweaks that are widespread across other devices don't seem to be discussed. Build.prop hacks are cheap and easy things that don't get much action around here (though not all of them are applicable/or even helpful). Someone brought up the FuguTweaks thing the other day from the Captivate forum. More of these cross-device discussions would be awesome.
Click to expand...
Click to collapse
Your gonna hold your breath a long time if you're waiting for froyo source.
If anyone needed proof that Quadrant scores aren't good indicators of real performance, this is a real, unedited screen shot from my phone running EB01:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I dropped the link in IRC for giggles and a couple of people lost their minds, accusing me of lying. Sorry fellahs, I got better things to do.
You can boost your quadrant scores this high with a couple easy steps that provide absolutely no performance boost outside of quadrant (it's is similar to why voodoo enabled systems score so high, but only perform somewhat better). So for the hold-outs that still think that quadrant is a reliable benchmark... be aware of it's major flaw.
GizmoDroid said:
If anyone needed proof that Quadrant scores aren't good indicators of real performance, this is a real, unedited screen shot from my phone running EB01:
I dropped the link in IRC for giggles and a couple of people lost their minds, accusing me of lying. Sorry fellahs, I got better things to do.
You can boost your quadrant scores this high with a couple easy steps that provide absolutely no performance boost outside of quadrant (it's is similar to why voodoo enabled systems score so high, but only perform somewhat better). So for the hold-outs that still think that quadrant is a reliable benchmark... be aware of it's major flaw.
Click to expand...
Click to collapse
I have been trying to convince people of this flawed benchmark app for months when using Blazed Eclair, it scores almost normal but runs the same voodoo other kernels do plus lots of other tweaks on kernel side. Very few believed me and switched from Blazed JUST for higher quadrant benchmark scores
Sent from my SCH-I500 using Tapatalk
SirGatez said:
I have been trying to convince people of this flawed benchmark app for months when using Blazed Eclair, it scores almost normal but runs the same voodoo other kernels do plus lots of other tweaks on kernel side. Very few believed me and switched from Blazed JUST for higher quadrant benchmark scores
Click to expand...
Click to collapse
Maybe I should make a HOWTO tutorial on how to get ridiculously high quadrant scores on any OS/kernel, then people would be free from using it to influence their thinking and instead would base it on real world results.
The cynical side of me says that they would just find a new benchmark and do the same thing with it.
Meh, we know the truths, so sure make a howto, maybe quadrant will fix their flaws (yeah...i'm not sure about that one...) people on the otherhand will flock like you say without our intervention, but for the rest of us this could prove helpful in building roms/kernels that do not allow benchmarks to succumb to the same flaws that most current ones do
Sent from my SCH-I500 using Tapatalk
SirGatez said:
Meh, we know the truths, so sure make a howto
Click to expand...
Click to collapse
[HowTo] Release the most downloaded ROM of all time:
Take stock rom.
Insert the following line into a boot script:
Code:
mount -o rw -t tmpfs tmpfs /data/data/com.aurorasoftworks.quadrant.ui.standard
Upload ROM to host of your choice.
Post screenshots of Quadrant scores with download link.
Great Success.
There are lots of ways to inflate quadrant scores... but this is the funniest method because it makes it ridiculously obvious how voodoo can achieve inflated quadrant scores without gaining a similar amount of performance (they both write cache to memory, therefore inflating the I/O scores ridiculously high).
Adding more to the noise cancellation issue, I found some more info out tonight:
Jamezelle pointed out a property that is set in res/values/bool.xml in the Phone.apk "has_noise_suppression" and it's set to false. After digging around, I found that this shows up in the PhoneUtils class if you decompile Phone.apk. It reveals two options: "noise_suppression=auto" and "noise_suppression=off". Some realworld testing needs to be done, but if the fascinate has the noise surpression ability and its just turned off, then this could be turned on again by adding to build.prop, or by modding the options menu to have this show up as an option.
Its very possible that it's hidden because it's not implemented, but other Galaxy S phones have some type of noise cancellation, so it might just not be implemented in the software.
Don't know if you were still looking for how to change EVRC to EVRC-B, but dial **72, the spc code is 000000, press down on the directional button arrow until you see Svc mode nam 1 end of basic nam exit. Press the right directional key once, you will see EXIT change to more, hit enter, press down once and you will see HomePage VoiceSO and EVRC, push the right button to change to EVRC-B. Hit ok and phone will reboot. Sorry for the sloppiness, at work and trying to be quick.
Edit: Ah, nevermind, you didn't want service mode, sorry!
Sent from my SCH-I500 using XDA Premium App
Dread This Day said:
Don't know if you were still looking for how to change EVRC to EVRC-B, but dial **72, the spc code is 000000, press down on the directional button arrow until you see Svc mode nam 1 end of basic nam exit. Press the right directional key once, you will see EXIT change to more, hit enter, press down once and you will see HomePage VoiceSO and EVRC, push the right button to change to EVRC-B. Hit ok and phone will reboot. Sorry for the sloppiness, at work and trying to be quick.
Edit: Ah, nevermind, you didn't want service mode, sorry!
Sent from my SCH-I500 using XDA Premium App
Click to expand...
Click to collapse
Yeah, this way does work, and I have used it multiple times. But it resets itself every time you reactivate, and its near dangerous settings, so its not something I would recommend to newbies.
If there was a less dangerous way to set it (say from a script or an apk) then this could lead to it being more widely recommended. It really does provide substantial improvement of call quality.
If my gf calls using her bluetooth headset, which has mediocre sound quality, the further compression of EVRC makes her very hard to understand. With EVRC-B, I can understand her plain as day.
Dread This Day said:
Don't know if you were still looking for how to change EVRC to EVRC-B, but dial **72, the spc code is 000000, press down on the directional button arrow until you see Svc mode nam 1 end of basic nam exit. Press the right directional key once, you will see EXIT change to more, hit enter, press down once and you will see HomePage VoiceSO and EVRC, push the right button to change to EVRC-B. Hit ok and phone will reboot. Sorry for the sloppiness, at work and trying to be quick.
Edit: Ah, nevermind, you didn't want service mode, sorry!
Sent from my SCH-I500 using XDA Premium App
Click to expand...
Click to collapse
Thanks, working great! But you posted incorrect dial code. Let me correct you. **772

[ROM] [UNOFFICIAL] Cyanogenmod 13.0 for Shield TV (all variants)

Similar to my TWRP / Multirom thread, this is temporary until xda decides to add this device to the dev db list. A few comments and a known issues list will be all in this post. Please report any and all problems you find. This is still very early in the development process.
NOTES:
This will only install using my TWRP build here because I'm have to do some hacky things to support a unified build. I may eventually find a cleaner method.
This doesn't yet contain my attempt at controller pairing. The framework patches are there, but not the apk. It will be tested and included in later builds. Wifi doesn't work, so pairing wouldn't work anyways.
I had to use aosp libs to make this boot, which is different from my Portable and Tablet releases. The hdcp libs seems to be very different, so I have no idea if 4k works at all and I seriously doubt youtube and netflix drm will verify correctly.
You will have to wipe data to install this, make a backup first. Do note this is just /data, not the entire internal sd.
KNOWN ISSUES:
Wireless controller pairing not implemented
No audio over hdmi (so, no audio at all)
SOURCE:
device
kernel
vendor
CURRENT RELEASE:
cm-13.0-20160224-UNOFFICIAL-foster.zip
OLD RELEASES:
cm-12.1-20150819-UNOFFICIAL-foster.zip
cm-12.1-20150720-UNOFFICIAL-foster.zip
cm-12.1-20150709-UNOFFICIAL-foster.zip
missing default android keyboard?
installs fine boots into CM - displaying in 1080p on my monitor just fine.
missing android keyboard.
works fine with usb keyboard (logitech k400r)
amazon app store installs fine, recognizes all apps - minecraft PE crashes on start
touch pad / mouse freezes intermittently
netflix installs but does not play
great start, looking good.
I'm finding all kinds of interesting things working on this... Well, I got the stock libs 'working'. HDCP (or something in the graphics stack) locks up the system on boot when using a custom built kernel. From within CM or even from Nvidia's aosp tree. It will only boot with the kernel pulled out of an official boot image. I compared the ikconfig out of the official kernel with what I'm building in CM and they match. So, I'm kinda lost as to what black magic is at work here... Is something doing a crc check? Is there black box GPL violations in the stock kernel? I don't know. And I had a custom kernel booting stock when I was first trying multirom stuff. So that makes me *really* confused. For the moment, I've disabled kernel compiles in my device tree and I'm shipping a blob kernel. And I hate doing that.
Haven't looked at the missing keyboard yet.
Wifi is closer, but still not there. The wlan0 interface seems to init, but the p2p interface fails and brings it immediately back down. I'll do some more research into that over the weekend.
The screen flickers at times. Don't know why, but I think I saw some system props that affects the screen drawing on stock, once I find those again I should be able to fix that.
The OMX libs work now. Which means game streaming works. I tested a grid game already. Don't have Windows, so I can't test local streaming. And theoretically the aforementioned Netflix problem should be fixed by this as well.
I'm kicking off a build to run overnight (takes 4+ hours for a clean release build [on a AMD FX 9370, no less]), so I should have this stuff up first thing tomorrow morning (pending life (r)).
Edit: And... build failed. Starting over... So, looking at this afternoon now.
Edit 2: Well... I can make it boot when I tinker with it manually, but I'm not having much luck making a reproducible build from source. So... I'll have a release eventually, but with 4 hour rebuilds, I can't say when at this rate.
Steel01 said:
Similar to my TWRP / Multirom thread, this is temporary until xda decides to add this device to the dev db list. A few comments and a known issues list will be all in this post. Please report any and all problems you find. This is still very early in the development process.
NOTES:
This will only install using my TWRP build here because I'm have to do some hacky things to support a unified build. I may eventually find a cleaner method.
This doesn't yet contain my attempt at controller pairing. The framework patches are there, but not the apk. It will be tested and included in later builds. Wifi doesn't work, so pairing wouldn't work anyways.
I had to use aosp libs to make this boot, which is different from my Portable and Tablet releases. The hdcp libs seems to be very different, so I have no idea if 4k works at all and I seriously doubt youtube and netflix drm will verify correctly.
You will have to wipe data to install this, make a backup first. Do note this is just /data, not the entire internal sd.
KNOWN ISSUES:
Wifi doesn't enable. (ethernet works fine, though)
Keyboard not installed
SOURCE:
device
kernel
vendor
CURRENT RELEASE:
cm-12.1-20150709-UNOFFICIAL-foster.zip
Click to expand...
Click to collapse
screenshots ?
Glad to see ATV gettin some action ... ooooo hel I'm excited. I've been fastbooting your twrp img. for a few things and its working quite nicely on my pro model. BIG BIG thanks for that @Steel01 Does it look like there will be any issues reguarding which version console its running?
@aniel300: Screenshots? It's Cyanogenmod. The same Cyanogenmod as on any other device...
@ElwOOd_CbGp: Like mentioned in the OP, I do a hacky thing or two to support unified builds. It have the pro version myself, so that's what I test on. I'm pretty sure it will work with no extra problems on the 16 GB model, however.
Alright, I *think* I finally ironed my build problems (all related to using a prebuilt kernel... got to figure out a way to not have to do that), so theoretically I'll have a build out tomorrow. Probably won't be able to test much until the afternoon, so I doubt it'll be out bright and early.
yey! please keep going! AOSP + Kodi + Support for official remotes would be awesome!
Steel01 said:
@aniel300: Screenshots? It's Cyanogenmod. The same Cyanogenmod as on any other device...
@ElwOOd_CbGp: Like mentioned in the OP, I do a hacky thing or two to support unified builds. It have the pro version myself, so that's what I test on. I'm pretty sure it will work with no extra problems on the 16 GB model, however.
Alright, I *think* I finally ironed my build problems (all related to using a prebuilt kernel... got to figure out a way to not have to do that), so theoretically I'll have a build out tomorrow. Probably won't be able to test much until the afternoon, so I doubt it'll be out bright and early.
Click to expand...
Click to collapse
is it a hybrid rom ?
@[email protected]: Kodi is of great interest to me as well, so I'll work to make sure works well.
@aniel300: No, it's pure CM. I plan to make the TV stuff accessible, but it won't be there by default.
I finally got a bootable build, but it does show more problems. The launcher and some programs lag terribly. Not locking up, but slow enough to trigger ANRs. Netflix does still crash when loading a video, hopefully that won't be hard to fix once I can read the logs. The interface still flickers, but only the interface, not videos or games or such. I'll do some more testing this afternoon and unless an even worse problem shows up, I'll release.
New build is up. It appears the netflix bug affects others things too, like youtube. Appears to be audio related, but I don't have time right away to try and track down the root cause. So, consider this another bug hunting build and not truly usable.
I've fixed an audio problem, so sound and YouTube and all that works again. Netflix is still confusing me a bit, though. It appears to be a problem with the OMX libs, but not one seen on any other Shield device. Haven't spent too much time looking the last few days.
I'm in the process of restructuring the build setup on my dev machine. Like moving the build trees to a faster spinny disk and ccache to a ssd. That should get builds going a lot faster. 4 hours per build gets old real fast. And 45 minutes for a one package change. I plan to release a new build once I get that all sorted out.
what about you try to port android m tv developer preview instead or at least cm but with all the good stuff from android tv.
It seems Forge has unlockable bootloader they posted instructions also for home images so it's a start it should be easy to flash recovery if there was one. Sorry for going little off topic but this seems more active here
New build up. Seems the OMX libs are only partially working. Youtube works, but mxplayer and kodi fall back to their software decoders. Wireless appears to finally work, but logcat messages lead me to believe it's still not completely there. Oh, and the UI flickering is still there.
So, I loaded this build up and promptly installed HALauncher and Kodi. With the controller wired in, this seems to be a pretty usable setup. As things begin to stabalize, I'll probably start to recommend that launcher as a replacement for leanback. Now if only I can find a replacement for the leanback keyboard, I won't have to include any Google blobs... Suggestions are welcome for a free and preferably open source dpad enabled keyboard.
Really good progress tonight. Barring something patentably bad happening, I should be releasing a new build tomorrow. List of progress:
1. Interface flickering is way down. Don't know if it was something I did or if upstream CM tweaked stuff. Either way, it's bearable now. I only notice it on some transitions, whereas before it was all the time on builtin android interface stuff.
2. OMX libs work. Hardware accelerated video and movies, plus game streaming and grid works now.
3. Leanback IME (controller enabled keyboard) is part of the build. It's smaller than on stock, but still usable.
Some things still need work, though:
1. Netflix still fails to play a video. At least it doesn't crash to desktop anymore...
2. Wireless controller pairing fails. The app runs and it tries to set stuff up, but seems to hit the same problem the Portable does most times. I have got the Portable to pair once or twice, though, so some people might be more lucky than me and it'll actually work.
All in all, this looks like a very usable test build, if not a daily driver for some use cases.
Hi steel01
I am planning to buy this device, pro version, but its true that the SSD storage drive has some problems about performance and response, speed, looking all around for a good review about this and nothing found yet,unbelievable, I want to be sure the 16 GB or pro version.
Counting on you,like you doing on the shield tablet,interesting approach with CM,look forward, when I get it I will install the Zulu99 full android ROM first and them....cm
Good luck on this, thank for you hard work
I haven't had any lag problem with the Pro edition, but I also haven't done anything IO intensive. So, I'm not really a good yardstick for that. However, the pro edition does have the 16GB hardware, just needs some tweaking to be able to access it. Probably could do some boot image trickery to get /system on that device. Haven't looked at that yet since CM and multirom are higher priority in that order.
Other stuff came up today, so I didn't get to test the new build. As soon as I drag it back across the house to reflash it, I'll verify the build and upload. Maybe tomorrow afternoon.
I am just a thinker, its possible to use all the best feature of CM and put it in android tv or viceversa.
I dont own yet a android tv device, but is like no to manny peoples like it, may restrictions from google, its entirely new or old UI, developers needs to port their apps to android tv platform, maybe we like the custom launcher or just the regular launcher, well its until everybodys decision.
Multirom sound good, but i like the basic and fast, what about if we can have two launcher in the GUI or UI, can be possible, there is a really need an apps to be ported to android tv platform, why google put restriction, we can sideload to get what we want, i think this is confusing android OS is android.
I think the best thing to do its going back to the basic.
Well, I didn't get to testing today either. I think I'll run another build tonight and try to get to a test tomorrow night.
@duanim: That is my end goal for my device. The Shield TV running CM with a 10 foot launcher (that isn't leanback) and everything accessible from the controller. The current build isn't too bad for that, but not all the way there. CM and HALauncher works pretty well. But the controller still needs help wirelessly.
There's one major problem with running android and android tv simultaneously. It seems the play stores are different. You either get the TV apps or the normal apps, not both. If someone knows different or a way to work around this, I'd love to hear it.
Still can't get the dumb wireless controller libs to package the way I want. So the latest build is missing some, causing the app to continuously force close, making the build unusable. I'll split it like I didn't want to and should have a releasable build tomorrow.

[02/05/17][HUB] Megathread

Hello, everyone!
If you aren't an expert - that's okay. Everyone is welcome and you're free to ask questions.
Make sure to check the date this post was updated (I may forget to update the date in the title) which is located at the bottom of this post. If this post hasn't been updated in more than a month, contact me and I'll refresh everything.​
Quick Introduction:
I'm new to the Yoga Book squad, and I've noticed one major downside.... the forums are a total mess. So what I'm hoping to do, is to keep this thread as up-to-date as possible, with links to guides, development progress and anything else.
I figure to make this more... tidy, I will enforce a colour-coding system for each sub-thread-guide-thingy, so you can instantly tell whether a guide or method to do something to your Yoga Book is risky, and most likely experimental, or is well tested. These will probably be done via experiments on my own Book (the wifi-only version), but of course I will hope via this community thread I will be able to provide more detailed statistics and such as everyone does their own thing to their device.
If you have anything to add to this thread, or would like to help out with anything; please feel free to contact me or just tell me what you're thinking - I'll do my best to read everyone's replies.
General Yoga Book Information
To my knowledge, there are two versions of the Yoga Book, each with two sub-versions for the OS:
1.) YB1-X9aF - this is the Wi-Fi version
2.) YB1-X9aL - this is the LTE/4G version
Where the "a" between the 9 and the F/L is either a zero or a one, depending on the installed OS (Android: 0, Windows 10: 1)
The SIM card is a Nano-SIM with 3G capability.
Other than that, all Yoga Book devices share the following specifications:
- 10.1 inch IPS display, of resolution 1920x1200
- Intel Atom x5-Z8550 processor, which:
----+ Has an architecture of x86_64
----+ Core base clock of 1.44 gigahertz
----+ Core boost clock of 2.4 gigahertz
----+ 4 cores and 4 threads
- Battery capacity of 8500 milliampere hours
- On-board storage of 64 gigabytes of solid-state storage (SSD)
- 4 gigabytes of random-access memory (RAM)
- A microSD card slot capable of up to 128 gigabytes of storage
- Two camera's, one above the display and one on the keyboard
- Wi-Fi (802.11 ac) and Bluetooth (v4)
- 3.5 millimetre headphone jack
- Micro-USB 2.0 OTG port
- Micro-HDMI port
Colour (or color) Codes and Tags:
For those who like using grey-scale display filters or whom are colour blind, I've added a "level" to each of them, where level 3 is like... crazy meltdown experimentation mode, and 1 is stable-ish (probably as stable as it'll get unless a REAL developer takes on the challenge).
[X] - Means that you will have to delete some or all of your data for it to work
[R] - Means that it requires a Rooted device
[Level 3] VERY EXPERIMENTAL - Use with caution, and with the knowledge that you may boot-loop, brick your device or lose your data!!! OR ALL OF THOSE THINGS!! Make sure to backup everything you hold dear, and just for good measure you'll have something to fallback on.
[Level 2] NOT WELL-TESTED - This will probably work for most people, but things may be unstable at the best of times. Again, make sure you have a backup before trying level 2 items.
[Level 1] 99% FINE - If there's an issue, it's probably your own fault... but again, I can't guarantee that everything I or anyone else does is perfect and will work for everyone! You should probably still have a backup, but if you're lazy like myself it's okay, I forgive you.
Android M/6.0
Rooting, backups, and more!​
[1][X] Unlocking the Bootloader
earthCallingAngela wrote a really nice guide for unlocking the bootloader. The original thread is here, but for those who are too lazy to open the link in a new tab I've quoted the information.
IF YOU APPRECIATE THEIR EFFORTS GO AND THANK THEIR ORIGINAL POST!!!
Remember, unlocking your devices bootloader will format your storage (meaning you'll lose all of your data), so backup anything important before proceeding.
earthCallingAngela's OP: https://forum.xda-developers.com/yoga-book/how-to/how-to-unlock-bootloader-t3502216
I hope this is useful information. It took me a bit to figure it out due to a lot of conflicting information, since the procedure has changed, perhaps several times, since the first version of Android. Also, I'll probably forget myself.
Please note that I've performed these steps on Linux (Specifically Arch Linux). Others have pointed out that if you have issues executing step 7 from Windows, you may need to follow this post.
1. Install Android Studio, or otherwise obtain the latest versions of the adb and fastboot programs. I think Windows users also need to install a USB driver, but I run Linux, so I am not sure about that procedure.
2. Gain access to the developer options on the tablet. Go to the settings, and find the "about tablet" section. Scroll down to the "Software version" section and tap on that several times until it says that you are now a developer. Feel special.
3. Go to the new "Developer options" setting. Select "OEM unlocking." Also, I selected "USB debugging" as a straightforward way to reboot into the boot loader.
4. Connect to the computer on which you've installed adb and fastboot.
5. Type 'adb devices' to see your device listed. The tablet will ask you if you're sure you want to allow the computer access to it. Answer in the affirmative, and save that option.
6. Type 'adb reboot-bootloader' to do just that.
7. After you see the innards of your 'droid, type 'fastboot flashing unlock' . On Linux, you may need root permissions to do this. The tablet will ask you to confirm (select with up/down volume, and accept with the power button), and will then erase all of your data! I didn't worry about this as I'm all on Google services, and so they can be restored easily enough.
Click to expand...
Click to collapse
[3] TWRP Custom Recovery
danjac has written a post about his attempt at getting a modified version of TWRP running on his Yoga Book. From what I can tell it was a success, besides a few bugs (which are avoidable... I think).
WARNING! MAKE SURE YOU READ THESE!!
Before you go ahead and just flash his version, make sure you know the consequences that could arise if something goes wrong. If the recovery of your device screws up, you don't really have much to bring it back to life with. Even though there shouldn't be many things to worry about, it's still very risky.
In fact, it is recommended you ONLY temporarily boot into TWRP, instead of just flashing it like you would on another device. danjac's OP gives more information for you to use.
If you think you are willing to take the risk and know what you're doing, I highly suggest you make a complete backup of your device if possible. So far there isn't really a way to get your stock recovery back (since we don't have a custom ROM or a way to download Lenovo's modified version online).
danjac's OP: https://forum.xda-developers.com/yoga-book/development/recovery-twrp-t3533980
[2] Rooting (via Magisk)
danjac wrote the first guide to rooting the Yoga Book, and you should, again, go and thank his original post. However, his OP is now a bit outdated, Magisk (currently v12.0) now includes a root module (MagiskSU) based on phh's SuperUser.
Please note: If you are already rooted via a different method (and maybe you want to change because it didn't work... or something like that) you have to go into your super-user manager and uninstall it. If you have a previous version of Magisk installed, there is an uninstall ZIP that you can flash, which will remove any Magisk version, including MagiskSU. Again, more details on the main Magisk thread.
Do I NEED to unlock my bootloader to Root my device?
The short answer is yes, and the long answer is sort-of. You only need to unlock your bootloader if your ROM doesn't support Rooting out-of-the-box (which in Lenovo's case, it isn't supported). However, you can lock your bootloader afterwards if it's such a concern to you. Yeah, you probably will stop receiving over-the-air updates from Lenovo, but they're probably not going to push out another update for a long while, so in my opinion it's nothing to worry about.
Follow the instructions on the main Magisk page to install it if you're new to Magisk, but if you know a thing or two then I'll paraphrase:
- Flash the latest Magisk ZIP file via the TWRP Recovery (if you have it) or just flash it over ADB
- You should also download the Magisk Manager from the Play Store to make sure you're always up-to-date
danjac's OT: https://forum.xda-developers.com/yoga-book/how-to/root-yb1-x90l-how-to-t3534268
Magisk's main thread: https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445
[2] Dual-booting Android and Windows 10
Since there isn't a place to get the Android side of things, I won't put too much info here.
Although if you're already running the Android version and want to know how to put Windows 10 on your device too, look at this thread.
Dual-booting OT: https://forum.xda-developers.com/yoga-book/help/android-to-windows-hack-dual-boot-option-t3475733
[3][X] Custom ROM
Currently there is no custom ROM which supports the Yoga Book, mainly for the simple fact not many people own the device. However, if we make enough noise in the community I'm sure someone will crack under the pressure ;P
Although, I'm doing my best efforts to merge the device drivers and such into the Android Source code, but you shouldn't get your hopes up. If I ever get it working, it will probably be unstable and not that great (I don't have much experience with the details of the Android OS), I'm running off my knowledge of the Linux OS.
If you're using the Windows 10 version of the Yoga Book (I'm sorry you paid the extra $50!!), hopefully Lenovo will at least release a version of their own ROM soon (or put it back from what I've heard). I've also heard that they're upgrading to Nougat in October (of 2017)... so we've got plenty of time to find another solution to our sorrows.
Information for Developers:
Someone has also posted a backup of their working Lenovo-customised Android OS, but I won't post a link here because:
- It's only a backup
- May draw un-wanted attention to the link
But if you're a developer and you think that will help you, you can easily find it somewhere in these forums.
EDIT: The link has now been removed (I can't find it)
If you're trying to
Code:
repo sync
the AOSP and you're getting stuck syncing the work tree, try doing this (from the folder you're trying to sync to):
Code:
rm -rf frameworks/compile/slang/
mkdir /home/<user>/slang_helper
sudo ln -s /home/<user>/slang_helper frameworks/compile/slang
Please be careful when typing commands into your terminal, especially from the internet, and especially when you don't understand what the commands are doing.
Lenovo's source code download: http://pcsupport.lenovo.com/au/en/products/tablets/yoga-series/yoga-book/za0v/downloads
[2] Linux without removing Android
Thanks to @Tiggi2017 for making the first guide. His OT here is a good one to read through if you're interested in this.
Via a few apps and some commands, you're able to have a "Linux" OS running on your Android device with the Halo Keyboard and such still working perfectly.
His original method doesn't need Root access apparently. However, there are other methods that may be easier for some people if they have a Rooted device. Look through the comments in that thread for more information.
OT: https://forum.xda-developers.com/yoga-book/how-to/yoga-book-gnuroot-debian-t3580358
Apps, tips and tricks!​
[1] Apps That Support Multi-Window
Thanks to sashlon1138 for doing most of the hard work by putting this list together (may not be complete, if you know of more apps that work let me know so I can add them!).
Thanks to uuang for getting the ball rolling.
Thanks to Csilla4 for finding the first calculator app that works.
Thanks to docoli for also finding a huge list of compatible apps.
Csilla4:
- iDo Calculator
uuang:
- RAR
- Google Photos
sashlon1138:
- Chrome (but not beta)
- Facebook
- Messenger (Facebook)
- Gmail
- Outlook
- Youtube
- VLC
- Google Search
- Home
- Instagram
- Pinterest
- Dolphin Browser
- Ebay
- Paypal
- Flow Free
- Google Maps
- Google Earth
- OneNote
- Wikipedia
- ES File Manager
- Twitter
- Evernote
- Reddit
- Skype
- Candy Crush Saga
- Candy Crush Soda
- Candy Crush Jelly
- Spotify
- Soundcloud
- Opera
- Opera Mini
- Yahoo Mail
- Viber Messenger
- MX Player
- Google Translate
- Shazam
- AliExpress
- Tumblr
- Twitch
- Mega
docoli:
- Microsoft Word, Excel and Powerpoint
- Softmaker Textmaker HD, Planmaker HD and Presentations HD
- RealCalc
- Adobe Acrobat
- CamScanner
- MindjetMaps
- LinkedIn
- ezPDF Reader
- Detexify
- HERE WeGo
- Google Street View
- Öffi (German Public Transportation Schedule app)
- DB Navigator (German Railroad Schedule app)
- Kindle
- Amazon Prime Video
- Maxdome
- Barnes & Noble Nook
- Audible
- TuneIn Radio
- TED
- Babbel
- dict.cc. plus
- Amazon
- Nine (you can even have any number of items in parallel on the screen, e.g., inbox, calender, contacts, notes)
- OneDrive
Link to OT: https://forum.xda-developers.com/yoga-book/help/multi-window-apps-t3565253/post71494066#post71494066
[2] Changing the DPI
WARNING! Do not change your DPI to extreme values! You may render your device useless (unless you already have set up ADB and know how to revert the changes)!
Thanks to melando for bringing up the actual default DPI values.
Just so you are aware, if you're running Android 7 (Nougat) or later, you can adjust the "DPI" to some preset values from the settings app.
Using this site, I calculated that the Yoga Book has a technical DPI of 224 pixels per inch, with a resolution of 1920 by 1200 pixels, over a 10.1" screen (diagonal). However, the default Lenovo has set it to may be actually 280. They suggest that you may find it better if the DPI is set to 240.
This is a trivial modification if your device is Rooted. All you have to do is open the Play Store, and search for something along the lines of "DPI changer", and find an app that has good reviews.
An example app would be "Easy DPI Changer [Root]"
If your device does not have Root, then you will have to have a computer with ADB installed.
To install ADB, do a quick Google. There's bound to be a guide there somewhere (I'll put one here soon).
Once you have ADB installed, you can follow this easy guide to change your DPI to whatever you like.
DPI Calculator: http://dpi.lv/
Non-Root Method: http://www.androidbeat.com/2015/07/how-to-change-dpi-of-android-device-without-root/
[1] Recommended Apps...?
There isn't anything here as of yet, because I haven't gotten far enough to look for any good apps that work well with the Yoga Book. So right now I'm going to rely on everyone else for that. I'll get there eventually.
However, you should at least download Magisk Manager from the Play Store, to manage your Root and other neato Magisk features.
If you're a developer, and need guinea pigs to test your stuff on, I am happy to help anyway I can (and I'm sure much of the community is too).
If anyone needs help, I'll do my best to assist, but if it's anything too tedious (such as teaching you how TWRP works or something along those lines), you should probably have a look on the internet for tutorials and guides for that stuff. There are plenty of people out there who can explain concepts better than myself.
Windows 10
Simple customisations!​
[1] Touch-pad Customiser
This program was first put into the spotlight by dinosauria123, so go to their original post and thank them for finding this.
This small program lets you modify some simple variables associated with your touch pad, only requiring a reboot after you change something.
Features:
- Setting extended right click area
- Setting unlock area
- Setting mouse pointer acceleration
- Setting scroll direction
- Disable Touchpad clicking (added in version 1.4)
Click to expand...
Click to collapse
OT: https://forum.xda-developers.com/yoga-book/themes/yoga-book-touch-pad-setting-application-t3569836
[1] Minor Halo KB Customisations
If you were wondering if there was a simple and easy way to lower the brightness of the Halo Keyboard, or just get rid of those pesky battery-draining touch vibrations for every key press, there is a way!!
Best of all, you don't have to download it! It's already installed!!
To find this not-so-well-hidden app, you have to either go to your Program Files, or open the good-old Control Panel (thanks to urayandro for pointing out that it's in the Control Panel!).
Control Panel method: Once you're in the Control Panel, just click on "Appearance and Personalisation", and you will find the "Halo Keyboard" program right at the bottom.
Program Files method: For 99.9% of people this is on your Local Drive (C: ). It may be located in your normal Program Files or it may be in your x86 Program Files, I'm assuming it depends on whether you're using the Windows 10 your device originally came with, or you have re-installed it (thanks to sawyerbenjamin for informing me that for them, it was in the normal Program Files folder). Assuming it's in your normal program files; go to Program Files/Lenovo/ and there it is. The application name is "ControlApp.exe". You can also make a shortcut to this application - I put a shortcut on my Desktop.
It allows you to:
- Toggle the touch tone/sound
- Toggle the vibration on keypress
- Adjust the time it takes for the keyboard lights to turn off
- Adjust the backlight (or whatever that is called) brightness for the whole keyboard
Risky or experimental customisations!​
[2] Using AMIDuOS (Android Emu)
Update: I've spent a bit of time trying to use this, and in my opinion it's not worth the time. But if you need a development environment for something, it's pretty good at that. :/
In my attempt at replacing my Windows 10 installation with any version of Android I could find, I ran across this program called AMIDuOS. It's similar to emulating an Android system while you're in Windows, but instead of running it in a virtual environment, it runs directly on your x86 hardware (which is what the Yoga Book uses).
If you're cool with having a Windows 10 version of the Yoga Book, but still want to use some Android applications (possibly for drawing, or maybe just because the Android ecosystem is miles better compared to the Windows one) this may be a good solution for you.
Currently, they support Lollipop and Jellybean (not Marshmallow). However, this program is not free. You can trial it for free though. I'm fairly certain the full price is $10 USD.
It's not a difficult thing to set up (apparently), so if you wanna try something out and know how to deal with possible emulation problems (although unlikely) it may be worth it.
AMIDuOS Website: http://www.amiduos.com/
[2] Process Lasso
Huh? Process what-now? Yep, Process Lasso is a very complex program filled to the brim with algorithms tailored mainly towards getting the best performance and responsiveness, and to control those pesky rogue background processes that slow down your device when you don't need them to.
This program is completely free (but it does have a Pro version if you want a few extra customisation's and want to support the developers) and I've found it works pretty well, especially with a low-power device like the Yoga Book.
Since the Yoga Book is meant to be a very portable device, I'm not using Process Lasso to get maximum performance (as that would obviously drain the battery life quickly), I'm using it to make sure that if there's a program that needs to use power and deplete my battery life, then it's something I want - not some dodgy Windows background processes or other stuff like that.
It's pretty easy to set up. I've got a few of the main features enabled, and I recommend that you use similar settings.
I've enabled:
- ProBalance; this will keep the background processes in check, and allow the foreground processes to take the reigns of your CPU, insuring you experience minimal stutters.
- SmartTrim; this is an optional one, since I'm constantly micro-managing the applications I've got installed on my 64GB internal drive, this should help to prolong the performance of my drive, making sure it's well pruned (that's a pretty good analogy actually)
I've turned off the tray-icon showing me the CPU utilisation, so that doesn't need to waste any of my precious battery life (I'm usually a battery-life extremest), but you don't need to do that.
So if you're experiencing major delays when just doing simple things like moving around the Windows 10 user interface due to rogue background processes, I highly recommend you give this program a try.
Also, if you're a pro-ish-user like myself, feel free to dive deeper into the program. It's filled with toggles and adjustable's for you to play with and tailor the program to your needs, and almost everything you can change is accompanied with a tool-tip explaining what it does. Enjoy! But of course, as always, be careful of what you change - there are some things that could make your system really slow and or unstable.
P.S. The Yoga Book uses the 64-bit system, so choose that version of the program.
Website: https://bitsum.com/
Reserved
Does anybody know, whether bootloader unlocking is necessary for magisk root?
Con_Sole said:
Does anybody know, whether bootloader unlocking is necessary for magisk root?
Click to expand...
Click to collapse
I'm not entirely sure, however flashing something to your device (via TWRP at least) does require an unlocked bootloader. So without an unlocked bootloader, I don't think there's a way to install MagiskSU. Sorry about that... :/
I will have a look around and see what I can find, though.
Con_Sole said:
Does anybody know, whether bootloader unlocking is necessary for magisk root?
Click to expand...
Click to collapse
So I've done more looking around and here is your answer: Yyyyeeeeaaaahhhhhh......?
Magisk itself does not require an unlocked bootloader, however, it does require root access. Usually to get root access you need to unlock your bootloader, unless it comes already rooted in a custom ROM (but in our case, it doesn't). Unlocking the bootloader is a relatively safe procedure to perform, so [in my opinion] you shouldn't have anything to worry about!
nan0s7 said:
[1] Minor Halo KB Customisations
If you were wondering if there was a simple and easy way to lower the brightness of the Halo Keyboard, or just get rid of those pesky battery-draining touch vibrations for every key press, there is a way!!
Best of all, you don't have to download it! It's already installed!!
To find this not-so-well-hidden app, you have to go to your Program Files. For 99.9% of people this is on your Local Drive (C. So to get to it, go to Program Files (x86)/Lenovo/ and there it is. Its very helpful and informative name is ControlApp.exe.
It allows you to:
- Toggle the touch tone/sound
- Toggle the vibration on keypress
- Adjust the time it takes for the keyboard lights to turn off
- Adjust the backlight (or whatever that is called) brightness for the whole keyboard
Click to expand...
Click to collapse
it's not not-so-well-hidden app.... it's not hidden at all. you can found it under "appearance and personalization" section of retro control panel.
urayandro said:
it's not not-so-well-hidden app.... it's not hidden at all. you can found it under "appearance and personalization" section of retro control panel.
Click to expand...
Click to collapse
Indeed it is! Consider that noted ;P
urayandro said:
it's not not-so-well-hidden app.... it's not hidden at all. you can found it under "appearance and personalization" section of retro control panel.
Click to expand...
Click to collapse
I found it in my normal Program Files folder. (x86) only contained a folder for LenovoPaper.
sawyerbenjamin said:
I found it in my normal Program Files folder. (x86) only contained a folder for LenovoPaper.
Click to expand...
Click to collapse
Huh, well it must depend on whether you kept the original installation of Windows that came on the device, or whether you reinstalled it (or came from Android). I'll add that information. Thanks!
sawyerbenjamin said:
I found it in my normal Program Files folder. (x86) only contained a folder for LenovoPaper.
Click to expand...
Click to collapse
Same here. In my device is also only contain LenovoPaper under \Program Files (x86)\LenovoPaper
What i mean with retro control panel is old window's control panel. not the win10 setting. You can access it by:
1. Click start and type "control panel" then press enter.
2. You should see control panel window that similar to older version of windows.
3. Go to "Appearance and Personalization
4. Under there you should see "HaloKeyboard" shortcut.
You can also create another shortcut of this app by right-clicking it then choose create shortcut. Windows will make another shortcut on the desktop. I did this to get easier access when need to adjust keyboard brightness.
Hey there,
i think there is a way to flash the win 10 image on my yb1-x90f. just don't wont to brick it and so i have a few questions to all of you experts. in other words, i need your help
there is a quide i found in internet, which i think could work. But there are words i've never read before like "RUSB". is this an important word? i attached as low quality pdf...
there is also the win 10 image online. but we have to pay for it because it's "exclusive" stuff. 50$
maybe we can put together, 50/50 so its 25$ for me and you?
i think you know which page is meant. if not pm me
like descriped in the guide, (part 3) we have to select "Boot Menu" and after that "EFI USB Device"
But my bootloader looks different (android version).
is there a way to flash the image via original android bootloader/recovery or do we need to find a way to get into the other bootloader?
in this post: https://forum.xda-developers.com/yoga-book/help/bricked-yoga-book-yb1-x90l-t3537048
 @mmusaad managed to get into this kind of "mode" but i think its a dangerous way and he had a big luck to "unbrick" his device. maybe onyone find an easy way to go into this "windows bootloader" or whatever?
so maybe we can work togehter
woodirk said:
there is also the win 10 image online. but we have to pay for it because it's "exclusive" stuff. 50$
Click to expand...
Click to collapse
Probably wrong translation from Chinese... Should read USB-R. There are USB Ports which don't support remote drives
woodirk said:
there is also the win 10 image online. but we have to pay for it because it's "exclusive" stuff. 50$
Click to expand...
Click to collapse
Windows was never free, that's why the Windows Yoga Book is $50 more expensive. A Win-Image will not help you either, as Lenovo brands the Product Key into the Bios.
jamespmi said:
Windows was never free, that's why the Windows Yoga Book is $50 more expensive. A Win-Image will not help you either, as Lenovo brands the Product Key into the Bios.
Click to expand...
Click to collapse
OMG sometimes i think "together" :highfive: is a heavy word... :crying:
what about this ? (see attachement)
and stop letting me look like an idiot...
I'm on the YB1-X91F, which is the Windows version. Unfortunately for us, the Android and Windows versions of the Yoga Book have totally different BIOS's. This is the main thing stopping us from being able to dual-boot.
Easy-firmware has both the Android and Windows' ROM's, but they only provide instructions on how to overwrite the current operating system, not the opposite ones. I have downloaded everything they have on the Android side of things, and everything except the Windows ROM on the Windows side.
While I was messing around with my device, I did brick it. But I was able to get an SD-card with a Windows bootable "USB" install on it, and went through the installation process on my external keyboard. Then from there was able to install the drivers and restore the Windows version with everything working after a bit of time. I don't know how different this would be if you don't mind getting rid of the Android bootloader totally, but that's not really recommended.
What we'd need for getting Android alongside the Windows version is a way to get a working Fastboot/ADB connection.
For the Android version getting Windows alongside it, you need a way to get the Android bootloader to point to and recognise the Windows installation. However, this is almost impossible unless you have a custom ROM, which we do not have that supports the Yoga Book. You could probably delete Android totally, and then install Windows from there, but I'm not 100% sure because I haven't messed around with the Android version of the tablet.
We'd need a way to get the Android BIOS and Fastboot off of it so we can then use it to our advantage.
nan0s7 said:
I have downloaded everything they have on the Android side of things, and everything except the Windows ROM on the Windows side.
Click to expand...
Click to collapse
that's good to know...
nan0s7 said:
You could probably delete Android totally, and then install Windows from there, but I'm not 100% sure because I haven't messed around with the Android version of the tablet.
Click to expand...
Click to collapse
this is exactly what i want to do and where i need your help
imo this will help us https://forum.xda-developers.com/showpost.php?p=70540959&postcount=7
woodirk said:
what about this ? (see attachement)
Click to expand...
Click to collapse
That probably flashes a valid Serial Number into the Bios...
DPI settings
I believe default DPI may actually be 280 - there's a Lenovo forum thread recommending setting it to 240 which I have found reduces the size of icons etc. so 224 does not seem right
melando said:
I believe default DPI may actually be 280 - there's a Lenovo forum thread recommending setting it to 240 which I have found reduces the size of icons etc. so 224 does not seem right
Click to expand...
Click to collapse
Thanks for the information! I've added a bit to the DPI section about the other values.
nan0s7 said:
Thanks for the information! I've added a bit to the DPI section about the other values.
Click to expand...
Click to collapse
However now that the Nougat update is out some adjustments can be made in Display Settings...
melando said:
However now that the Nougat update is out some adjustments can be made in Display Settings...
Click to expand...
Click to collapse
Oh yeah forgot that happened (I'm on the Windows version). Fixed it now!

Categories

Resources