~aleteoryx/muditaos

ref: a870922ec320fac19dd46cedeaf40357f7a58bb9 muditaos/products/BellHybrid/serial-number-reader/SerialNumberReader.cpp -rw-r--r-- 993 bytes
a870922e — Lukasz Mastalerz [CP-1837] Random crashes while copying files 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <purefs/vfs_subsystem.hpp>

#include <serial-number-reader/SerialNumberReader.hpp>
#include <log/log.hpp>

namespace
{
    constexpr auto DEVICE_NAME      = "emmc0sys1";
    constexpr auto EMMC_SN_LENGTH   = 13;
    constexpr auto EMMC_BUFFER_SIZE = 512;
    constexpr auto SECTOR_TO_READ   = 2;
    constexpr auto SECTOR_COUNT     = 1U;

    std::string readSerialNumberFromEmmc()
    {
        char buffer[EMMC_BUFFER_SIZE];
        purefs::subsystem::disk_mgr()->read(DEVICE_NAME, buffer, SECTOR_TO_READ, SECTOR_COUNT);
        buffer[EMMC_SN_LENGTH] = '\0';
        return std::string(buffer);
    }

} // namespace
namespace serial_number_reader
{
    const std::string &readSerialNumber()
    {
        const static std::string serialNumber = readSerialNumberFromEmmc();
        return serialNumber;
    }
} // namespace serial_number_reader