[issue26855] android: add platform.android_ver()

2019-12-10 Thread Xavier de Gaye


Change by Xavier de Gaye :


--
nosy:  -xdegaye

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2018-02-02 Thread pmpp

Change by pmpp :


--
nosy: +pmpp

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2017-12-11 Thread STINNER Victor

STINNER Victor  added the comment:

> Yes, and fall back to spawning getprop if that fails.

I suggest to start simple. Parsing a text file is simple, spawning a subprocess 
can have annoying side effects :-(

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2017-12-05 Thread Xavier de Gaye

Xavier de Gaye  added the comment:

Yes, and fall back to spawning getprop if that fails.

In the following link Robin Gawenda is reporting that /system/build.prop is 
world readable on all the devices he checked: 
https://stackoverflow.com/questions/9937099/how-to-get-the-build-prop-values

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2017-12-05 Thread STINNER Victor

STINNER Victor  added the comment:

"-rw-r--r-- 1 root root 2083 2017-07-12 22:01 /system/build.prop" so
anyone can *read* the file. Maybe we can write a cheap parser for it,
instead of spawning a subprocess or relying on a private function
which may be removed in the near future?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2017-12-05 Thread Xavier de Gaye

Xavier de Gaye  added the comment:

I cannot find a reference to the "build.prop" file in the Android documentation 
but google answers at the question ' what is "build.prop"':

The “build.prop” file is a system file that exists on every Android device. 
The file contains build information and other system properties which are used 
throughout the operating system.

and stackoverflow is thriving with questions on how to edit this file.

The file contains part of the information returned by the getprop command and 
all the information we are needing here.

Here is its content and access rights on an android-24-x86_64 emulator:

generic_x86_64:/data/local/tmp/python $ ls -al /system/build.prop
-rw-r--r-- 1 root root 2083 2017-07-12 22:01 /system/build.prop
generic_x86_64:/data/local/tmp/python $ cat /system/build.prop

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=NYC
ro.build.display.id=sdk_phone_x86_64-userdebug 7.0 NYC 4174735 test-keys
ro.build.version.incremental=4174735
ro.build.version.sdk=24
ro.build.version.preview_sdk=0
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=7.0
ro.build.version.security_patch=2017-06-05
ro.build.version.base_os=
ro.build.date=Wed Jul 12 19:46:52 UTC 2017
ro.build.date.utc=149912
ro.build.type=userdebug
ro.build.user=android-build
ro.build.host=wphl5.hot.corp.google.com
ro.build.tags=test-keys
ro.build.flavor=sdk_phone_x86_64-userdebug
ro.product.model=Android SDK built for x86_64
ro.product.brand=Android
ro.product.name=sdk_phone_x86_64
ro.product.device=generic_x86_64
ro.product.board=
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=x86_64
ro.product.cpu.abilist=x86_64,x86
ro.product.cpu.abilist32=x86
ro.product.cpu.abilist64=x86_64
ro.product.manufacturer=unknown
ro.product.locale=en-US
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=generic_x86_64
ro.product.cpu.abilist=x86_64,x86
ro.product.cpu.abilist32=x86
ro.product.cpu.abilist64=x86_64
ro.product.manufacturer=unknown
ro.product.locale=en-US
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=generic_x86_64
# Do not try to parse description, fingerprint, or thumbprint
ro.build.description=sdk_phone_x86_64-userdebug 7.0 NYC 4174735 test-keys
ro.build.fingerprint=Android/sdk_phone_x86_64/generic_x86_64:7.0/NYC/4174735:userdebug/test-keys
ro.build.characteristics=emulator
# end build properties
#
# from build/target/board/generic_x86_64/system.prop
#
#
# system.prop for generic sdk
#

rild.libpath=/system/lib/libreference-ril.so
rild.libargs=-d /dev/ttyS0

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.isa.x86_64.variant=x86_64
dalvik.vm.isa.x86_64.features=default
dalvik.vm.isa.x86.variant=x86
dalvik.vm.isa.x86.features=default
dalvik.vm.lockprof.threshold=500
xmpp.auto-presence=true
ro.config.nocheckin=yes
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2017-12-05 Thread STINNER Victor

STINNER Victor  added the comment:

Chromium still uses the private __system_property_get() function:

https://chromium.googlesource.com/chromium/+/trunk/base/sys_info_android.cc

I would prefer a C function call rather than spawning a subprocess, just to get 
a value. But the function seems private, and I see discussion about removal of 
the function...

--
nosy: +vstinner

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2017-02-03 Thread Xavier de Gaye

Changes by Xavier de Gaye :


--
assignee: xdegaye -> 

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-11-06 Thread Xavier de Gaye

Xavier de Gaye added the comment:

ANDROID_API_LEVEL can only be used in the Python test suite and 
platform.android_ver() must be used in the standard library. The reason why 
ANDROID_API_LEVEL can be used in the tests instead of using the runtime API 
level is that the Python test suite purpose is not to test the compatibilities 
betweeen all the possible subjacent bionic libc(s) and the tests need only be 
run on the platform for which they have been built.

platform.android_ver() is a welcome enhancement, and since we are at 3.6 beta 
now it's too late for 3.6 and it will be implemented in 3.7. Sorry about this 
delay.

--
assignee:  -> xdegaye
components: +Library (Lib)
stage:  -> patch review
versions: +Python 3.7 -Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-11-06 Thread Chi Hsuan Yen

Chi Hsuan Yen added the comment:

I see Xavier de Gaye uses sysconfig.get_config_var('ANDROID_API_LEVEL') is 
various patches. That's OK if the build-time target API level of CPython 
matches runtime Android API level. Does CPython force API level matching? If so 
this issue is no longer necessary.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-06-05 Thread Xavier de Gaye

Xavier de Gaye added the comment:

Agreed, and it is not part of the versioning scheme either.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-06-05 Thread Chi Hsuan Yen

Chi Hsuan Yen added the comment:

I guess ro.kernel.qemu is not generic enough to be an item in android_ver(). In 
tests you can simply use _android_getprop()

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-06-05 Thread Xavier de Gaye

Xavier de Gaye added the comment:

The ro.kernel.qemu property is set to 1 on an Android emulator and 0 otherwise. 
I think it should be added to the list.  On some threading tests where the 
switch interval is set to one microsecond, it is necessary to set the switch 
interval to a higher value when running on the qemu emulator, see the three 
issues:
issue #26939: android: test_functools hangs on armv7
issue #26940: android: test_importlib hangs on armv7
issue #26941: android: test_threading hangs on armv7

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-05-11 Thread Chi Hsuan Yen

Chi Hsuan Yen added the comment:

Version 3.

Still using a try-catch clause to enclose the subprocess call, as _syscmd_ver 
does the same thing.

--
Added file: http://bugs.python.org/file42813/android_ver.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-05-11 Thread Xavier de Gaye

Xavier de Gaye added the comment:

IMHO returning an integer for the sdk field would be better. The patch could 
use shutil.which() to avoid subprocess calls when getprop is not available. It 
would be better to use a 'try/except ValueError' clause instead of isdigit(). 
The OSError and UnicodeDecodeError exceptions should not be masked, as well as 
ValueError if sdk cannot be parsed as an int.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-05-08 Thread Chi Hsuan Yen

Chi Hsuan Yen added the comment:

Android framework provides an SDK_INT field [1], which parses the value of 
`ro.build.version.sdk` and defaults to 0 if failed [2]. Should android_ver() 
return an integer for the `sdk` field, too? It simplifies the usage in #26935 
and similar ones.

[1] 
https://android.googlesource.com/platform/frameworks/base/+/e8579b12a3c5be5fef25fc5a1c8c2c9d43e49347/core/java/android/os/Build.java#183
[2] 
https://android.googlesource.com/platform/frameworks/base/+/e8579b12a3c5be5fef25fc5a1c8c2c9d43e49347/core/jni/android_os_SystemProperties.cpp#66

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-05-04 Thread Chi Hsuan Yen

Chi Hsuan Yen added the comment:

Version 2 attached. Removed ro.build.version.full.

--
Added file: http://bugs.python.org/file42723/android_ver.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-05-04 Thread Marc-Andre Lemburg

Marc-Andre Lemburg added the comment:

On 04.05.2016 21:47, Chi Hsuan Yen wrote:
> 1. Should Android 4.1 supported? If not pass_fds and logics for deriving it 
> can be removed.

According to http://www.droid-life.com/tag/distribution/ the Jelly
Bean versions (4.1, 4.2 and 4.3) still have a sizable market
share, so if it's not too much trouble, I think supporting 4.1 would
be a plus.

> 2. I can't find ro.build.version.full on any device/emulator I have access 
> to. Maybe it should be removed due to low popularity?

Agreed.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-05-04 Thread Chi Hsuan Yen

Chi Hsuan Yen added the comment:

Several questions on implementation:
1. Should Android 4.1 supported? If not pass_fds and logics for deriving it can 
be removed.
2. I can't find ro.build.version.full on any device/emulator I have access to. 
Maybe it should be removed due to low popularity?

Some related Android source codes, as my implementation basis:
1. Android 4.1's ANDROID_PROPERTY_WORKSPACE: 
https://android.googlesource.com/platform/bionic/+/android-4.1.1_r1/libc/bionic/system_properties.c#55
2. The Android Framework assumes property values to be valid UTF-8: 
https://android.googlesource.com/platform/frameworks/base/+/android-5.1.1_r37/core/jni/android_os_SystemProperties.cpp#49.
 In fact if I feed a malformed /system/build.prop to DalvikVM, it crashes [1]
3. Google's Android Compatibility Test Suite (CTS) [2] assumes `getprop` binary 
is in $PATH and can be executed: 
https://android.googlesource.com/platform/cts/+/android-5.1.1_r37/tests/tests/os/src/android/os/cts/BuildTest.java#110

[1] 
https://github.com/rave-engine/python3-android/pull/10#issuecomment-159390390
[2] https://source.android.com/compatibility/cts/

--
Added file: http://bugs.python.org/file42721/android_ver.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26855] android: add platform.android_ver()

2016-05-03 Thread Xavier de Gaye

Changes by Xavier de Gaye :


--
title: add platform.android_ver() for android -> android: add 
platform.android_ver()

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com