Xperia Lounge and bootloader unlocking - bootloader

I have unlocked the BL on my F5122 XX Dual and I can't claim that PlayStation Theme (I have Gold Membership on XLounge) with the error "Cannot contact service, try again later". I can do anything else on XLounge like participating in giveaways, download free stuff, etc just that Theme offer. I tried cleaning data, uninstalling updates even a full wipe and locking the bootloader just because of a theme and still couldn't claim it. Is claiming offers tied up with DRM keys which are lost during the BL unlocking?

Yes that is right. If you do not have the keys any more then Pass (https://play.google.com/store/apps/details?id=com.sonymobile.xperialounge.services) cannot confirm that it is an Xperia phone so you will not be able to download the Playstation Theme for free.

Related

I need help gathering s.m.a.r.t. data from an external Samsung T5 SSD 2TB, on a Mac

MacOS Big Sur 11.2.3
MacBook Pro 15' Mid 2015
External disk: Samsung T5 SSD 2TB
I've installed smartmontools and DriveDX
I've installed the kernel driver as described here: https://binaryfruit.com/drivedx/usb-drive-support
With smartmontools and DriveDX I can successfully get data from a Maxtor HDD and a WD Element HDD, so I think, drivers are good, and the procedure of attaching the external drives after a reboot works.
Still can't get SMART data from the Samsung T5.
The only hypothesis is that the T5 has an enclosure that doesn't support SMART technology, but I've seen reviews of the disk which included SMART reports.
Anything I can try?
This could be a long journey, hold on tight.
As this SMART reading is based on SATSMART driver, I would say there is something bad with driver to device part.
I suggest you to diagnose it with IORegistryExplorer: find your T5 device and check, whether there is a fi_dungeon_driver_IOSATDriver in the device tree.
If it is there, which I would say is less possible, I have a bad news: you will need to debug the driver and try to find, what is going on there during data exchange, why it can't retreive SMART data from the device. This is a complicated process with a lot of places for you to shoot in the leg.
However I think the problem starts earlier, the driver is not matched to the T5 device.
To keep long story short: matching is a process, when the system decides, what driver is a proper for a new device. What you will need to do to match SATSMART driver to your Samsung T5, is to add its record to Info.plist of the driver in the same format, like:
<key>Samsung T5</key>
<dict>
<key>PassThroughMode</key>
<string>YOUR_DEVICE_PASSTHROUGH_MODE</string>
<key>YOUR_DEVICE_PID</key>
<integer>24626</integer>
<key>idVendor</key>
<integer>YOUR_DEVICE_VID</integer>
</dict>
Here the PID and VID is a product and vendor ids, there are a lot ways to find such from your device, including IORegistryExplorer.
The YOUR_DEVICE_PASSTHROUGH_MODE is more complicated, it seems that there is no public info about usb bridge type used there, so I advice to try different values, starting from sat16 and jmicron.
After you changed the Info.plist you will need to build the driver. There would be a plenty errors because of old macro used: you could use the unmerged pull request to solve them.
In the end, you should get the kext with your modifications.
To test it with your macOS you will need either to sign it with driver signature or to disable SIP on your mac.
After the testing, if it works, you could use it as is, or write a mail to binaryfruit.com and ask them to integrate your findings to their product :)
Based on the specification (https://www.samsung.com/semiconductor/minisite/ssd/product/portable/t5/), T5 has USB 3.1 interface to communicate with PC. Internal SSD module of T5 has M.2 form factor. See https://www.youtube.com/watch?v=A6WQOQ-bEtQ. Your guess is correct - there is interposer in-between USB <-> M.2. Your external T5 Drive may not be recognized as SATA or NVMe device while your HDDs do (most likely as SATA). In such case obtaining SMART data can be a problem. Try to use Vendor tool at T5 web link mentioned before (Section "Download Files"). There is also Mac version. May be this tool can shows the SMART correctly.

winapi: Which driver will be used for my USB device (which may not be connected)?

For collecting diagnostic information, I'd like to include which driver will be used for a particular device, even if the device is not connected.
Relevant Driver details would be Provider and Version.
For the device, Vendor ID and Product ID are known.
The driver is preinstalled, but no device of that type may have been connected before.
[edit] The purpose is troubleshooting installation issues. Normally, drivers get preinstalled with the software installation.
However, one 3rd party driver installation is particulary susceptible to get uninstalled due to bad UX that I can't control, and some customers go "creative" when trying to fix something, with some customers the language barrier is too high. I just want support to see reliably "oh, they have an old driver installed, for whatever reason.
I think you should investigate the registry keys in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB. In general, every distinct USB device that was previously plugged into the computer will have an entry there. The entries have a "Driver" entry with a GUID and you can probably figure out what that GUID means by searching for it in other parts of the registry.
If the device has never plugged in, then you would probably want to use Microsoft's devcon utility (which is open source) to list all the installed OEM driver packages (INF files). You can then open the INF files, read them, and see if they might apply to your device.

Unlocking computer with NFC-enabled phone

I want to have an NFC sticker on my laptop/desktop which when swiped with my NFC phone will unlock my computer. If I don't have my phone with me, I can still login using my normal password. I so far bought some NFC stickers and installed TagStand on my phone which manages to post to a server that I control. I want to write some small piece of software that would listen to this server and unlock my computer if the server tells my computer to do so. I have not made the last part work as I don't know how to write such a software for either Mac or PC. Is it possible? If so, how?
The NFC part is very simple but the unlocking part is more complicated than you think. Unlocking your computer should never be done programmatically because if your program can do it, then so can others. Not to mention that this 'program' is going to act based on communication between a remote server and itself. This is a security nightmare, that has no use other than the experimental benefit.
If you do enough research you'll find that locking (not unlocking) a computer is possible programmatically. Unlocking on the other hand is not easy..
Here are a few links for you, I've been though them before, never tested them though...
Remotely-Unlock-a-Windows-Workstation
unlock-local-computer-using-net
unlock-windows-workstation-programatically
aucun
I thing another way of accomplishing this would be to do it the other way around. Have your phone store your password in an app that could pass it along to the computer. The computer would need some sort of USB NFC reader that would essentially act as a keyboard. When you tap your phone to the USB device it "types" your password into the text box and the last thing the app does is "hit the enter key" Obvious security issue is if you are running the unlocker app it is essentially just constantly sending out your password...
I would like to note that Asus has launched a product that does this (allows NFC login) for windows 8, so it is possible - as far as how secure it is I don't know...

What do you need on a Windows PC if you use a library that uses OpenGL?

I am looking at adding 3D functionality into my application. For this I will probably use the QtOpenGl library, but it's not entirely clear if this requires anything special on my customers' PC's.
Will my customers need an OpenGL video card?
Will my customers need an OpenGL driver?
Is a minimum Windows release required?
Or does it require something else to be installed on the customers' PC's (besides Qt itself)
Or will it run out of the box?
Thanks
Will my customers need an OpenGL video card?
Not neccessarily, there's always the software rasterizer fallback.
Will my customers need an OpenGL driver?
Preferrably. But there's always the software rasterizer fallback.
Is a minimum Windows release required?
Yes, Windows NT 4 or Windows 95B
Or does it require something else to be installed on the customers' PC's (besides Qt itself)
Ideally the customer has installed the drivers for his graphics card, as they are distributed by the graphics card maker. Until Windows Vista this was the case anyway. Since Windows Vista, Windows ships with stripped graphics drivers: Microsoft has that policy to remove the OpenGL-ICD from the bundled drivers. So customers have to install the original drivers from the vendor directly. Without vendor OpenGL-ICDs you'll only have the OpenGL-1.4 emulation shipping with Windows Vista/7. For anything beyond, the customer must install the original drivers.
Or will it run out of the box?
Most likely, but the performance may not be the best, if the vendor drivers have not been installed. My recommendation: Do it like the games: Upon programm start detect which graphics card is present and if the right drivers are installed, and if not, inform the user about it and offer to go to the vendors website to download and install the right driver for his box (that's how I do it).
All modern computers support OpenGL, according to their web site. From personal experience, it will run out of the box with no additional setup required, but you will have to distribute an additional DLL file (QtOpenGL.dll) with your program.

How should I get ActiveSync / Mobile Dev Center to recognise my Windows CE device via USB?

We develop a custom Windows CE-based device. To connect this to the PC via ActiveSync / Mobile Device Center, we have to set up entries so that the WCE USB Serial Host (wceusbsh.sys) recognises our Vendor ID (Vid) and Product ID (Pid).
To do this, to date, we have distributed a modified version of wceusbsh.inf and wceusbsh.sys: when the user first connects the device then ActiveSync basically says it does not recognise the device, and the user is asked to identify a driver for it. If they now point at the location where they've stored our wceusbsh.* files then all is well. However this is pretty clunky.
What we really want is a slick way to do this, preferably by running an installer which just gets everything ready, so that as soon as the device is plugged in it is recognised by wceusbsh.sys.
Any clues how to do this? There seem to be a ton of registry entries which relate to WCEUSBSH, and it's not clear how these are set: just "installing" the .INF file doesn't seem to allow for setting them all, so it does look like ActiveSync reads the .INF file and then adds some more information before appending the new info to the Registry.
Thanks
Well, in case anyone else comes looking for an answer to this, we managed to do it via this link from MSDN WinUSB (Windows Driver Kit). We now have a driver install program which sets up USB / Mobile Device Center so that when you plug in the CE device it is recognised correctly.

Resources