Sorry for hijacking this thread but I wasn't getting any help when posted in any other section... I am getting the following error, how should I fix it?
Code:
including vendor/slim/vendorsetup.sh
build/core/product_config.mk:250: *** _nic.PRODUCTS.[[device/oneplus/onyx/slim.mk]]: "frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk" does not exist. Stop.
Device onyx not found. Attempting to retrieve device repository from SlimRoms Github (http://github.com/SlimRoms).
Found repository: device_oneplus_onyx
Checking branch info
Calculated revision: ng7.0
Default revision: android-7.0.0_r1
already exists: device/oneplus/onyx
Traceback (most recent call last):
File "build/tools/roomservice.py", line 379, in <module>
main()
File "build/tools/roomservice.py", line 363, in main
add_to_manifest(adding, fallback_branch)
File "build/tools/roomservice.py", line 201, in add_to_manifest
f = open(custom_local_manifest, 'w')
IOError: [Errno 13] Permission denied: '.repo/local_manifests/slim_manifest.xml'
build/core/product_config.mk:250: *** _nic.PRODUCTS.[[device/oneplus/onyx/slim.mk]]: "frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk" does not exist. Stop.
build/core/product_config.mk:250: *** _nic.PRODUCTS.[[device/oneplus/onyx/slim.mk]]: "frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'slim_onyx'
** Do you have the right repo manifest?
Hi,
I do my own builds of Lineage 14.1 (and CM before) since some years. Taking the standard repositories and repo-picking some of the not yet merged commits. It always worked flawlessly.
Since some days, I get an error when using repopick that seems to be connected with an SSL problem:
Traceback (most recent call last):
File "/home/wolli/cm14.1/vendor/cm/build/tools/repopick.py", line 275, in <module>
reviews = fetch_query(args.gerrit, ' OR '.join('change:{0}'.format(x.split('/')[0]) for x in change_numbers))
File "/home/wolli/cm14.1/vendor/cm/build/tools/repopick.py", line 141, in fetch_query
return fetch_query_via_http(remote_url, query.replace(' ', '+'))
File "/home/wolli/cm14.1/vendor/cm/build/tools/repopick.py", line 122, in fetch_query_via_http
data = requests.get(url)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 455, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 558, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
requests.exceptions.SSLError: hostname 'review.lineageos.org' doesn't match 'jira.lineageos.org'
Does anybody else also observe the problem? Is something wrong on my build machine (which made no problems since the last years)?
I would appreciate any help. Thanks!
Best regards,
Klaerchen
Hey,
I was trying to compile AOSPA from source. After the repo sync finished, i copied the proprietary blobs from The Muppets repository.. After that I ran "source build/envsetup.sh".
Everything was fine up til now, but when i ran breakfast pme, i got
"
Traceback (most recent call last):
File "build/tools/roomservice.py", line 63, in <module>
raise ValueError('No dependencies file could be found for the device (%s).' % device)
ValueError: No dependencies file could be found for the device (pme).
** Roomservice failure for: 'pa_pme'
"
I searched a little and figured out that i need to add PA dependencies in vendor/pa/products/pme
I used tried using the LOS file, but then when i ran breakfast pme, i got the following:
"
including vendor/pa/vendorsetup.sh
Traceback (most recent call last):
File "build/tools/roomservice.py", line 129, in <module>
raise ValueError('No remote declaration could be found for the %s project. (%s)' % (name, remote))
ValueError: No remote declaration could be found for the android_kernel_htc_msm8996 project. (None)
** Roomservice failure for: 'pa_pme'
"
Can anybody help me fix this?
Hello,
I recently wanted to download some firmware for my Samsung device, but I realized that there is no 100% open source program to do so. In fact, all the tools that claim to do so require a library that is packed by Themida (so it is difficult to check what this might be doing), in order to authenticate to the server. This is a native DLL, meaning that it is only compatible with Windows x86. Additionally, many of these tools are actually using stolen decompiled code from SamFirm, which, apart from being possibly illegal, means they would be difficult to maintain and run slowly.
So, I decided to reverse engineer Smart Switch to figure out exactly how the download is taking place, and wrote a cross-platform tool that does this without using the Windows DLL that the other tools have, making it compatible with Linux and MacOS. I also realized that the newer versions are actually using a new version of the authentication algorithm, meaning possibly at some point the old tools might stop working as Samsung drops support for it.
You can find it at:
Code:
https://github.com/nlscc/samloader
To install, go to the downloaded repository and run:
Code:
pip3 install .
See the README or look at the code for usage. You might want to know that my old github account, nm111, was unfortunately deleted, and I lost access to my old XDA account. You can see the verified email is the same however.
Feel free to use the algorithms I figured out in your own code, so long as you don't use it in proprietary programs. It is licensed under GNU GPLv3 or later.
This works for all phones, not just S10+, but I couldn't find a better forum and this is where Frija posted.
Thank you. This is pretty cool. I downloaded it now and will check it out later tonight.
Can you please do the same thing for the emergency recovery option.
Will you update your tool if it still working in the future?
This is going to be super useful for me (ATM I'm using SamFirm with wine/proton and my setup breaks often, and GUI gets in my way) since I need to download many firmwares for my reverse-engineering, so thanks!
Late for this great find, thanks to the xda article, really needed a solution outside Windows.
PS, what are the chances for spoofing a request, i.e, trying to fetch only the latest OTA from a certain CSC?
@nn000 Glad this made the front page. I have used this for a little wile now and it works great
@phhusson
This will work on windows if you use the WSL and install Ubuntu. You could probably get this working under Cygwin too.
Great work mate. Helps to gather various download. Unfortunately enough Samshung does not allow older firmware via server fetching..
Hi, thanks for this great tool as samfirm and frija are slow to download firmwares. I am trying to download firmware for galaxy watch. I can only search the firmware version but when trying to download it there is error:
filename = root.find("./FUSBody/Put/BINARY_NAME/Data").text
AttributeError: 'NoneType' object has no attribute 'text'
is there any way to modify this tool to download watch firmware too?
You are genius! Thanks for this tool. Can't wait to try this :good:
nn000 said:
Feel free to use the algorithms I figured out in your own code, so long as you don't use it in proprietary programs. It is licensed under GNU GPLv3 or later.
This works for all phones, not just S10+, but I couldn't find a better forum and this is where Frija posted.
Click to expand...
Click to collapse
Brilliant work!
Thank you very much for developing this tool and removing our dependency on Windows for such basic functionality as checking for and downloading firmware updates. Thank you also for having the foresight and generosity to publish this under the GPL.
This tool will receive a huge amount of use on my machines.
Thanks in advance, I don't know how to download the program, they would be so kind to give me a link. Thank you very much
I tried installing with the command found in the readme file
Code:
pip3 install git+https://github.com/nlscc/samloader.git
But when I type
Code:
$ samloader --help
It says "samloader: command not found"
Beautiful. Thanks for this tool!
4929york said:
I tried installing with the command found in the readme file
Code:
pip3 install git+https://github.com/nlscc/samloader.git
But when I type
Code:
$ samloader --help
It says "samloader: command not found"
Click to expand...
Click to collapse
install python first, before try
rikipy said:
install python first, before try
Click to expand...
Click to collapse
Python was installed.
How to set download location(out) in the command line
samloader download [firmware version] [phone model] [region] [out]
I tried to put \Download but it's not in the folder.
I installed python39 and git on Win10 but sill get errors
Code:
pip3 install git+https://github.com/nlscc/samloader.git
Collecting git+https://github.com/nlscc/samloader.git
Cloning https://github.com/nlscc/samloader.git to c:\users\danie\appdata\local\temp\pip-req-build-s8l3kwc6
Collecting clint
Using cached clint-0.5.1.tar.gz (29 kB)
Collecting pycryptodomex
Using cached pycryptodomex-3.9.8.tar.gz (15.6 MB)
ERROR: Command errored out with exit status 1:
command: 'c:\program files\python39\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\danie\\AppData\\Local\\Temp\\pip-install-vvk574_e\\pycryptodomex\\setup.py'"'"'; __file__='"'"'C:\\Users\\danie\\AppData\\Local\\Temp\\pip-install-vvk574_e\\pycryptodomex\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\danie\AppData\Local\Temp\pip-pip-egg-info-3i7fsfut'
cwd: C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\
Complete output (20 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\setup.py", line 457, in <module>
set_compiler_options(package_root, ext_modules)
File "C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\compiler_opt.py", line 341, in set_compiler_options
clang = compiler_is_clang()
File "C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\compiler_opt.py", line 251, in compiler_is_clang
return test_compilation(source, msg="clang")
File "C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\compiler_opt.py", line 82, in test_compilation
objects = compiler.compile([fname], extra_postargs=extra_cc_options)
File "c:\program files\python39\lib\distutils\_msvccompiler.py", line 323, in compile
self.initialize()
File "c:\program files\python39\lib\distutils\_msvccompiler.py", line 220, in initialize
vc_env = _get_vc_env(plat_spec)
File "c:\program files\python39\lib\site-packages\setuptools\msvc.py", line 314, in msvc14_get_vc_env
return _msvc14_get_vc_env(plat_spec)
File "c:\program files\python39\lib\site-packages\setuptools\msvc.py", line 268, in _msvc14_get_vc_env
raise distutils.errors.DistutilsPlatformError(
distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
Testing support for clang
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Viper780 said:
I installed python39 and git on Win10 but sill get errors
Code:
distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
Click to expand...
Click to collapse
The problem is right there in front of you: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
It's pretty annoying when there are requirements and you find out about them afterwards.
Would be good to write them to the install instructions
- python3
- git
- Buildtools for MS C++
Thanks for this, it works well! Cheers..
:highfive:
Example:
Install
Code:
pip3 install git+https://github.com/nlscc/samloader.git
Check update
Code:
samloader -m SM-G975F -r NZC checkupdate
Download
Code:
samloader -m SM-G975F -r NZC download -v G975FXXS9DTI8/G975FOXM9DTI8/G975FXXS9DTI8/G975FXXS9DTI8 -O /home/hinxnz/Downloads
Decrypt
Code:
samloader -m SM-G975F -r NZC decrypt -v G975FXXS9DTI8/G975FOXM9DTI8/G975FXXS9DTI8/G975FXXS9DTI8 -V 4 -i SM-G975F_1_20200921075534_uii8oafhih_fac.zip.enc4 -o SM-G975F_1_20200921075534_uii8oafhih_fac.zip
---------- Post added at 10:52 PM ---------- Previous post was at 10:41 PM ----------
Viper780 said:
I installed python39 and git on Win10 but sill get errors
Code:
pip3 install git+https://github.com/nlscc/samloader.git
Collecting git+https://github.com/nlscc/samloader.git
Cloning https://github.com/nlscc/samloader.git to c:\users\danie\appdata\local\temp\pip-req-build-s8l3kwc6
Collecting clint
Using cached clint-0.5.1.tar.gz (29 kB)
Collecting pycryptodomex
Using cached pycryptodomex-3.9.8.tar.gz (15.6 MB)
ERROR: Command errored out with exit status 1:
command: 'c:\program files\python39\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\danie\\AppData\\Local\\Temp\\pip-install-vvk574_e\\pycryptodomex\\setup.py'"'"'; __file__='"'"'C:\\Users\\danie\\AppData\\Local\\Temp\\pip-install-vvk574_e\\pycryptodomex\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\danie\AppData\Local\Temp\pip-pip-egg-info-3i7fsfut'
cwd: C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\
Complete output (20 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\setup.py", line 457, in <module>
set_compiler_options(package_root, ext_modules)
File "C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\compiler_opt.py", line 341, in set_compiler_options
clang = compiler_is_clang()
File "C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\compiler_opt.py", line 251, in compiler_is_clang
return test_compilation(source, msg="clang")
File "C:\Users\danie\AppData\Local\Temp\pip-install-vvk574_e\pycryptodomex\compiler_opt.py", line 82, in test_compilation
objects = compiler.compile([fname], extra_postargs=extra_cc_options)
File "c:\program files\python39\lib\distutils\_msvccompiler.py", line 323, in compile
self.initialize()
File "c:\program files\python39\lib\distutils\_msvccompiler.py", line 220, in initialize
vc_env = _get_vc_env(plat_spec)
File "c:\program files\python39\lib\site-packages\setuptools\msvc.py", line 314, in msvc14_get_vc_env
return _msvc14_get_vc_env(plat_spec)
File "c:\program files\python39\lib\site-packages\setuptools\msvc.py", line 268, in _msvc14_get_vc_env
raise distutils.errors.DistutilsPlatformError(
distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
Testing support for clang
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Click to expand...
Click to collapse
Now install linux
Hi guys!
So I was following this https://wiki.lineageos.org/devices/bacon/build wiki to build a lineageos 18.1 ROM for my one plus one.
Unfortunately, when I get to the step for "breakfast bacon", I get the following errors.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
build/make/target/product/product_launched_with_k.mk:2: error: _nic.PRODUCTS.[[device/oneplus/bacon/lineage_bacon.mk]]: "device/oppo/msm8974-common/msm8974.mk" does not exist.
22:35:04 dumpvars failed with: exit status 1
Device bacon not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Found repository: android_device_oneplus_bacon
Default revision: lineage-18.1
Checking branch info
Checking if device/oneplus/bacon is fetched from android_device_oneplus_bacon
LineageOS/android_device_oneplus_bacon already fetched to device/oneplus/bacon
Syncing repository to retrieve project.
sh: 1: repo: not found
Repository synced!
Looking for dependencies in device/oneplus/bacon
Looking for dependencies in device/oppo/msm8974-common
device/oppo/msm8974-common has no additional dependencies.
Looking for dependencies in kernel/oppo/msm8974
kernel/oppo/msm8974 has no additional dependencies.
Done
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
build/make/target/product/product_launched_with_k.mk:2: error: _nic.PRODUCTS.[[device/oneplus/bacon/lineage_bacon.mk]]: "device/oppo/msm8974-common/msm8974.mk" does not exist.
22:35:05 dumpvars failed with: exit status 1
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
build/make/target/product/product_launched_with_k.mk:2: error: _nic.PRODUCTS.[[device/oneplus/bacon/lineage_bacon.mk]]: "device/oppo/msm8974-common/msm8974.mk" does not exist.
22:35:06 dumpvars failed with: exit status 1
** Don't have a product spec for: 'lineage_bacon'
** Do you have the right repo manifest?
Click to expand...
Click to collapse
What am I doing wrong?
p.s. if I do a "breakfast d855", then I get no error.
My utter apologies for being so blind.
It is of course clearly written on that wiki that some devices would fail upon "breakfast" command being called due to the missing vendor files.
Hence one should first run "extract-files.sh" in the device specific folder. And indeed afterwards the breakfast command succeeds for "bacon".
I could be given a little margin for being a noob and also that my other device "d855" does not need extract-files.sh before breakfast.
Also what confused me yesterday was, that the paths contained oppo when infact I was building for bacon. I was sure something is wrong upstream.
My sincere apologies again for starting on xda with such a useless post.