The GM OLS assumes you are using an oil that meets the spec GM6094M which is a non-synthetic based oil and that your air intake system is as it was from the factory and there are no leaks. No it cannot determine viscosity, nor can it determine dirt in the oil. It makes decisions on certain sensors such as the engine temp, air temp, engine run time, baro, rpm and uses this information to determine engine run time on a cold engine/hot engine, how long it take for the engine to warm up after a cold start, how long it takes to cool down, rpm's run at cold engine vs. hot engine, etc. More variations that I will can state here; and more than I can remember (it has been a few years since I was at GM engineering).
Since the biggest degradation of oil is the rise from cold to excessive heat; that is what the system is primarily looking at. But it has to assume the oil spec in the algorithms. If a person uses a cheap non spec'ed oil, the oil life indicator will not come on when it should and there is a good chance the oil TBN has dropped to a critical level when the light does come one (it will depend on what the oil is missing and how the additives have worn out); if you use a higher spec'd oil (ex. GM4718M synthetic oil) the indicator will come on too soon for the oil to be changed; but at least the oil will in all likelihood be viable and have a decent TBN.
If you are running a non-factory air system or the system has a leak, you will be allowing more dirt into the oil and the system cannot determine this so the oil may be destroyed prior to the indicator coming on.
Cold start ups with engine running to operating temps will cause the indicator to come on sooner since that is very hard on the oil and reduces the TBN. So those who live in cold climates will see a drop in how long the oil lasts, whereas those in more temperate climates or during the summer will see the oil last longer.
When I lived in TN and did short trips during the winter in my Vette the oil life would drop considerably (it had an actual gauges to view the percentage of oil life left) as compared to the summer. In three months it would drop by about 40% with very little miles driven.
However, on a few road trips, one to AZ, in Oct, I was able to travel from TN to AZ and return and still have 65% remaining on the system .
The oil likes to run at a nice steady warm temp for long periods of time.
So the system is basically basing the oil life on how the engine is run and temperatures; engine operation.
However, as it is true to state that the H3's system does not monitor mileage, that is not true for all of GM's oil life systems. Sometime after 2011 (not sure on the date, might the '12) they started to include actual mileage in the algorithms just to click it on at a certain mileage for engine safety. Not sure if it pertains to ALL engine, or just certain engines. This was info I learned talking with some GM engineers after retirement.
If anyone is ever curious as to how accurate the system is, take oil samples at the oil change and send off a sample to a testing facility such as Blackstone.
http://www.blackstone-labs.com/
Not only will it show the TBN of the oil drained it will also show what is in the oil and whether or not it is a normal number for the engine you have, as well as the additives used in the oil being sampled.
There is a heck of a lot more to the operation of the system; however, luckily I have forgotten most of it (age does have it benefits

), and I need more coffee so no time to explain all of it, even if I did remember.
All I know is it is very accurate, and with newer vehicles (I believe manufactured since 2014; I know my '15 and my '16 ) are running a Dexos 2 oil, which in almost ALL cases is synthetic oil (I say almost ALL since there were at one time one or two blends that met the Dexos 2 spec).